WPF:如何以不同的方向书写文本?
我需要按照下图指定的方向书写文本。事实上,我在这里看到了一些示例,使用textblock并使用“RenderTransform”旋转控件的角度,但这并不是我真正需要的。我试着用一张图片来做,但是它不太合适。。。所以我真的不知道怎么解决它。如果您查看旁边的图像,您可以看到文本是从下到上书写的,文本下方的行位于屏幕的右侧。 这是我需要开发的屏幕: 我尝试旋转textblock,但对我来说唯一有效的方法是包装文本,但这只是我找到的“最接近”的解决方案。另外,如您所见,我需要为textblock设置边框WPF:如何以不同的方向书写文本?,wpf,xaml,textblock,Wpf,Xaml,Textblock,我需要按照下图指定的方向书写文本。事实上,我在这里看到了一些示例,使用textblock并使用“RenderTransform”旋转控件的角度,但这并不是我真正需要的。我试着用一张图片来做,但是它不太合适。。。所以我真的不知道怎么解决它。如果您查看旁边的图像,您可以看到文本是从下到上书写的,文本下方的行位于屏幕的右侧。 这是我需要开发的屏幕: 我尝试旋转textblock,但对我来说唯一有效的方法是包装文本,但这只是我找到的“最接近”的解决方案。另外,如您所见,我需要为textblock设置边
无论如何,我希望你能帮助我,因为任何例子都适合我的问题。如果RenderTransform不起作用,请查看LayoutTransform。您没有告诉我们为什么RenderTransform不起作用,但通常可以肯定的是,LayoutTransform会解决它给您带来的任何问题。他们没事<代码>渲染转换应该是您所需要的全部。喜欢
<TextBlock Text="FootRoller" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock.RenderTransform>
<CompositeTransform Rotation="-90"/>
</TextBlock.RenderTransform>
</TextBlock>
另外,你可以直接将
RenderTransform
更改为LayoutTransform
,Sheridan在他的回答中对此进行了解释。为了将文本旋转90度,我相信你需要使用LayoutTransform
而不是RenderTransform
:
<TextBlock Text="FootRoller" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock.LayoutTransform>
<RotateTransform Angle="-90"/>
</TextBlock.LayoutTransform>
</TextBlock>
不同之处在于何时应用变换。使用layoututtransform
,文本将在布局过程之前旋转,这在您的情况下非常重要。我想使用渲染转换将旋转文本块
,但在布局通过后,它将不会显示所有内容。。。这是因为它是在旋转之前测量大小的
您可以在MSDN的页面上找到完整的详细信息。从链接页面:
布局转换–在布局过程之前应用的转换。应用变换后,布局系统将处理变换后的图元大小和位置
渲染变换–修改元素外观但在布局过程完成后应用的变换。通过使用RenderTransform属性而不是LayoutTransform属性,可以获得性能优势
使用“RenderTransform”,但这不是我真正需要的,而是它的实现方式。你现在可以不看了。啊,我应该补充一点,你可以直接将RenderTransform
更改为LayoutTransform
,但解释是肯定的。你的意思是将RenderTransform更改为LayoutTransform吗?可能会刷新你的页面;)