1

我已将TextBlock控件包裹在边框中,以便查看占用空间的内容:

在此处输入图像描述

这是 XAML:

<Border BorderBrush="Cyan" BorderThickness="3">
    <TextBlock Style="{StaticResource subtitle}" Text="{Binding Title}" >
        <TextBlock.RenderTransform>
            <RotateTransform Angle="90" />
        </TextBlock.RenderTransform>
    </TextBlock>
</Border>

问题是这占用了比我需要的更多的空间,如果我为它设置一个静态宽度,我会得到这个:

在此处输入图像描述

有什么建议么?

4

2 回答 2

6
<Setter Property="LayoutTransform"> 
    <Setter.Value> 
        <RotateTransform Angle="90" /> 
    </Setter.Value> 
</Setter> 

之所以发生这种情况,是因为与大多数 Web 基础应用程序一样,有一系列事件会被触发/触发,我们习惯于在渲染事件中看到或处理的大部分内容都发生在渲染事件中。到那时,可以说页面已经被提供了我不是 100% 确定,但我真的认为 LayoutTransform 发生在预渲染期间

于 2011-12-20T18:23:13.123 回答
0

在运行时创建文本块并旋转它们时,我遇到了同样的问题。我只是通过设置解决了它

tb.Margin = .......
tb.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left;
tb.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
RotateTransform rt = new RotateTransform();
rt.Angle = -40;
tb.RenderTransform = rt;

好像您没有设置它们,转换正在对居中的文本进行计算并添加宽度以将其定位在您想要的位置...

于 2014-11-23T15:11:58.363 回答