我正在开发一个C#Silverlight应用程序,它需要将一些文本旋转90度CCW,并使其成为100px x 221px图像的中心。旋转部分在设计视图中很容易做到,但是文本居中是一场噩梦。 (我使用的是无法更改或调整大小的16px字体)
我的文字是动态的,可以是一行或两行。当它是两行长时我可以很好地居中......但如果它只有一行长,我就无法居中。到目前为止,中心的唯一方法是调整框的大小并将其移动到右侧。
有没有一种简单的方法可以做到这一点?
alt text http://www.freeimagehosting.net/uploads/f0435a8c65.png
答案 0 :(得分:0)
答案很简单:
<Grid x:Name="LayoutRoot">
<Image x:Name="Background" Source="Background.png" Stretch="Fill"/>
<TextBlock x:Name="Title"
Margin="-19.75,68.25,-21.25,67.806" Text="Here is some text to fill this up"
Foreground="#FF00A33D"
FontSize="22" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto"
TextAlignment="Center" TextWrapping="Wrap"
>
<TextBlock.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-90"/>
<TranslateTransform/>
</TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>
</Grid>
然后在cs文件中设置更改文本时的对齐
Title.VerticalAlignment = VerticalAlignment.Bottom;