繁体   English   中英

垂直旋转的Textblock占据了整个宽度,就好像它是水平的一样

[英]Vertically rotated Textblock takes up entire width as if it were horizontal

我已经将TextBlock控件包装在边框中,以便可以看到正在占用的空间:

在此处输入图片说明

这是XAML:

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

问题在于,这占用了比我需要的空间更多的空间,如果我为其设置了静态宽度,则会得到以下信息:

在此处输入图片说明

有什么建议么?

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

之所以如此,是因为像在大多数Web Base应用程序中一样,有一系列事件会触发/触发我们用来查看或处理的大部分事件,而这些事件发生在Rendering Event中。我不确定100%,但是我真的认为LayoutTransform在预渲染期间发生

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

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;

似乎您没有设置它们,变换是在居中文本上进行计算,并添加宽度以将其放置在所需位置...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM