1
<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>

在这里,我想旋转文本,它位于网格内,网格列宽等于文本高度。在这种情况下,我只看到部分文本,例如文本是在没有旋转网格宽度的情况下绘制的,然后旋转到所需的角度。我尝试过面板,它们给了我相同的结果。

有没有人知道一些解决方法让它显示所有文本,我不想使用图像,因为文本应该是可翻译的。

4

2 回答 2

5

我相信如果您将其更改为设置LayoutTransform而不是RenderTransform,它将防止文本被截断。

        <Label.LayoutTransform>
            <RotateTransform Angle="270" />
        </Label.LayoutTransform>
于 2013-11-14T15:12:59.213 回答
1

除了@nekizalb 的回答指出您应该使用 a 之外LayoutTransform,您需要这样做而不是使用 aRenderTransform的原因是因为每次发生的时间...... aLayoutTransform会影响布局的结果。

从 MSDN 上的UIElement.RenderTransform属性页面:

渲染转换不会重新生成布局大小或渲染大小信息。渲染变换通常用于为元素设置动画或应用临时效果。例如,元素在聚焦或鼠标悬停时可能会缩放,或者在加载时可能会抖动以将注意力吸引到用户界面 (UI) 的该部分。

从 MSDN 上的FrameworkElement.LayoutTransform属性页面:

与 RenderTransform 相比,LayoutTransform 会影响布局的结果。

LayoutTransform 有用的示例场景包括:将菜单组件等元素从水平旋转到垂直,反之亦然,缩放元素(放大)焦点,提供编辑行为等。

于 2013-11-14T15:28:16.093 回答