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

时间:2013-11-21 14:48:46

标签: wpf xaml textblock

我需要按照下图所示的方向书写文字。事实是我在这里看到一些例子,使用文本块并使用“RenderTransform”旋转控件的角度,但这不是我真正需要的。我尝试使用图像来做它但它不太合适...所以我真的不知道如何解决它。如果您查看旁边的图像,您可以看到文本是从下到上书写的,文本下方的行位于屏幕右侧。 这是我需要开发的屏幕:

What I have to do!

我试过旋转文本块,但它对我有用的唯一方法是包装文本,但这只是我找到的“最接近”的解决方案。另外,如您所见,我需要为文本块设置边框。

enter image description here

无论如何,我希望你能帮助我,因为周围的任何例子都符合我的问题。

3 个答案:

答案 0 :(得分:2)

他们没事。应该只需要RenderTransform。等;

<TextBlock Text="FootRoller" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBlock.RenderTransform>
        <CompositeTransform Rotation="-90"/>
    </TextBlock.RenderTransform>
</TextBlock>

P.S。 - 您可以将RenderTransform改为LayoutTransform,Sheridan在答案中提供了解释。

答案 1 :(得分:2)

为了将文字旋转90度,我相信您需要使用LayoutTransform代替RenderTransform

<TextBlock Text="FootRoller" HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBlock.LayoutTransform>
        <RotateTransform Angle="-90"/>
    </TextBlock.LayoutTransform>
</TextBlock>

当应用变换时 。使用LayoutTransform,文本将在布局传递之前旋转,这在您的情况下非常重要。我想使用RenderTransform会轮换你的TextBlock,但是在布局传递之后就会这样做,它不会全部显示...这是因为它是在旋转之前测量尺寸

您可以在MSDN上的Transforms Overview页面上找到完整的详细信息。从链接页面:

  

LayoutTransform - 在布局传递之前应用的变换。应用变换后,布局系统将处理元素的变换大小和位置。

     

RenderTransform - 一种修改元素外观的变换,但在布局传递完成后应用。通过使用RenderTransform属性而不是LayoutTransform属性,您可以获得性能优势。

答案 2 :(得分:0)

如果RenderTransform不起作用,请查看LayoutTransform。你没有告诉我们为什么RenderTransform不起作用,但通常可以肯定的是,LayoutTransform将解决它给你的任何问题。