(Windows 8.1,Windows应用商店应用)
我想将旋转的文本放在容器(例如Grid)中,让容器从旋转的文本中获取其尺寸。然而...
此代码:
<Canvas Background="Gray">
<Grid
Canvas.Left="100"
Canvas.Top="100"
Background="LightGray">
<TextBlock Text="Text rotated 270º">
<TextBlock.RenderTransform>
<RotateTransform Angle="270" />
</TextBlock.RenderTransform>
</TextBlock>
</Grid>
<Canvas>
......渲染如下:
我希望网格在应用旋转后从TextBlock获取宽度和高度。但是,在应用旋转之前,网格似乎从TextBlock获取其尺寸。
如何获得容器(即网格)以适应其内容的旋转大小(即TextBlock)?
答案 0 :(得分:6)
您正在寻找LayoutTransform。关于如何在Windows 8中实现这一点,这是一个很棒的blog post。
来自cookplex的this toolkit看起来已经有了!您可以使用LayoutTransformControl。该工具包可通过Nuget获得。
您可以将其添加为控件的内容,并将内容放入其中。
<Grid
Canvas.Left="100"
Canvas.Top="100"
Background="LightGray">
<controls:LayoutTransformControl x:Name="transformControl">
<controls:LayoutTransformControl.Transform>
<RotateTransform x:Name="rotateTransform" Angle="270"/>
</controls:LayoutTransformControl.Transform>
<TextBlock Text="Hello LayoutTransformControl" />
</controls:LayoutTransformControl>
</Border>