甚至在WPF中跨多行进行自动换行

时间:2018-01-16 06:43:50

标签: c# wpf xaml textwrapping

给出一个玩具示例窗口:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Width="200" Height="100">
    <Grid>
        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
                   TextWrapping="Wrap" TextAlignment="Center" FontSize="12">
            You do <Bold Foreground="Red">not</Bold> have a
            license to frobnicate all the things.
        </TextBlock>
    </Grid>
</Window>

得到的输出相当合适 - 尽管如果单词&#34; to&#34;已被放在第二行(这是通过手动换行完成的):

Text size 12 Text size 12 evenly

将字体大小更改为10会导致输出均匀得多(再次手动完成第二个):

Text size 10 Text size 10 evenly

将其更改为8就足以让它显示在一行上,这很好(虽然有点太小而无法读取)。

是否有一些简单的方法可以请求它尝试进行偶数行包装,而不是在每行包装上尽可能多地适应?

我知道我可以手动插入<LineBreak/>元素或调整宽度或填充以使其恰好适合(这是我为上面每组中的第二个图像所做的),但我更喜欢更多的东西对变化具有鲁棒性(例如,如果我使文本可翻译或包含数据绑定文本)。

我不是在寻找完全合理的文本,只是尽可能接近每行上相同宽度的文本。

0 个答案:

没有答案