WPF:如何以不同的方向书写文本?

WPF:如何以不同的方向书写文本?,wpf,xaml,textblock,Wpf,Xaml,Textblock,我需要按照下图指定的方向书写文本。事实上,我在这里看到了一些示例,使用textblock并使用“RenderTransform”旋转控件的角度,但这并不是我真正需要的。我试着用一张图片来做,但是它不太合适。。。所以我真的不知道怎么解决它。如果您查看旁边的图像,您可以看到文本是从下到上书写的,文本下方的行位于屏幕的右侧。 这是我需要开发的屏幕: 我尝试旋转textblock,但对我来说唯一有效的方法是包装文本,但这只是我找到的“最接近”的解决方案。另外,如您所见,我需要为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吗?可能会刷新你的页面;)