WPF:应用 ScaleTransform 时换行文本

WPF : Wrap text while ScaleTransform is applied

我想在 TextWrapping=Wrap 时对 TextBlock 应用 ScaleTransform。

这是我的 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>

P.S。使用滑块调整缩放并查看缩放如何影响整个布局

链接:MSDN