我想在TextBlock上应用ScaleTransform而TextWrapping = Wrap。
这是我的xaml:
<Grid>
<Border ClipToBounds="True" Background="Beige" Width="200" Height="200">
<TextBlock TextWrapping="Wrap" FontSize="20" Text="AB CD EF GH IG KL MN OP QR ST UV WX YZ">
<TextBlock.RenderTransform>
<ScaleTransform ScaleX="1" />
</TextBlock.RenderTransform>
</TextBlock>
</Border>
</Grid>
它在ScaleX = 1时有效,但在ScaleX> 1时不起作用。
请看这些图片:
我需要ScaleTransform和TextWrapping,我该怎么做?
你可以试试LayoutTransform
而不是RenderTransform
。使用以下代码段来玩:
<Grid>
<DockPanel LastChildFill="True">
<Slider x:Name="Scale" DockPanel.Dock="Bottom" Minimum="1" Maximum="20"/>
<Border ClipToBounds="True" Background="Beige" Width="200" Height="200">
<TextBlock TextWrapping="Wrap" FontSize="20" Text="AB CD EF GH IG KL MN OP QR ST UV WX YZ">
<TextBlock.LayoutTransform>
<ScaleTransform ScaleX="{Binding ElementName=Scale, Path=Value}" ScaleY="{Binding ElementName=Scale, Path=Value}"/>
</TextBlock.LayoutTransform>
</TextBlock>
</Border>
</DockPanel>
</Grid>
附:使用滑块调整缩放比例并查看缩放对整个布局的影响
链接:MSDN