我有一个TextBlock,我想在一个30px宽的用户控件中垂直显示。TextBlock控件已使用RenderTransform旋转90°。
当我将其与30px的翻译结合时,旋转似乎发生得很好,但TextBlock的实际内容被截断在似乎是30px的位置。
看起来文本是以父级的30px宽度呈现的,然后被转换。
<UserControl x:Class="Xyz.Controls.FooControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
d:DesignHeight="300" d:DesignWidth="30">
<Grid x:Name="LayoutRoot">
<Grid Name="barGrid" Background="#BFFFFFFF">
<Ellipse Width="30" Height="30" Fill="Red" HorizontalAlignment="Center" VerticalAlignment="Top" />
<TextBlock Name="barText" Text="88.8°"
Width="50"
Height="30"
Foreground="#FF3535C4">
<TextBlock.RenderTransform>
<CompositeTransform Rotation="90" TranslateX="30"/>
</TextBlock.RenderTransform>
</TextBlock>
</Grid>
</Grid>
</UserControl>
字符串
在Visual Studio的这个屏幕截图中,预期的文本只显示29px。
的数据
在Expression Blend和Emulator中也会出现相同的问题。
2条答案
按热度按时间zzzyeukh1#
我已经想出了一种方法来获得预期的布局,但它似乎有点黑客。
通过在TextBlock上设置一个等于TextBox宽度(50 px)和父宽度(30 px)之差的负左边距(-20px),可以垂直显示全文。
例如:
字符串
4xrmg8kj2#
请改用LayoutTransform。