<Label Grid.Row="1"
Height="70"
Margin="2"
Width="300"
Content="{l:Translate Key={x:Static l:MultistringTags.SHOW_MENU}}"
DockPanel.Dock="Bottom"
FontSize="20"
FontWeight="Bold"
Foreground="White">
<Label.RenderTransform>
<RotateTransform Angle="270" />
</Label.RenderTransform>
</Label>
这里我要旋转文本,它位于网格内部,网格列宽度等于文本高度。在这种情况下,我只看到文本的一部分,如果文本是在没有按网格宽度旋转切割的情况下绘制的,并且旋转到所需的角度。我试过面板,他们给了我相同的结果。
是否有人知道一些解决方法,使其显示所有文本,我不想使用图像,因为文本应该是可翻译的。
答案 0 :(得分:4)
我相信如果您更改它以设置LayoutTransform
而不是RenderTransform
,则会阻止文本被切断。
<Label.LayoutTransform>
<RotateTransform Angle="270" />
</Label.LayoutTransform>
答案 1 :(得分:1)
除了@ nekizalb的答案说明你应该使用LayoutTransform
之外,你需要这样做而不是使用RenderTransform
是因为每次发生的时间...... LayoutTransform
会影响布局效果。
来自MSDN上的UIElement.RenderTransform
Property页:
渲染变换不会重新生成布局大小或渲染大小信息。渲染变换通常用于为元素设置动画或应用临时效果。例如,元素在聚焦或鼠标悬停时可能会变焦,或者可能会在加载时抖动以吸引眼球到用户界面(UI)的那一部分。
来自MSDN上的FrameworkElement.LayoutTransform
Property页:
与RenderTransform相比,LayoutTransform会影响布局结果。
LayoutTransform有用的示例场景包括:旋转元素,如水平到垂直的菜单组件,反之亦然,焦点上的缩放元素(放大),提供编辑行为等。