XAML- TextTrimming和LineBreaks一起使用时无效?

5
为什么TextTrimming适用于第一个TextBlock,而不适用于第二个? 我在xaml中使用了LineBreaks,这是我需要显示的文本的一部分。
代码:
<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid VerticalAlignment="Center">
    <StackPanel>
        <TextBlock TextTrimming="WordEllipsis" TextWrapping="Wrap" Width="20" Height="20" Background="Yellow">
            1 2 3 4 5
        </TextBlock>

        <TextBlock TextTrimming="WordEllipsis" TextWrapping="Wrap" Width="20" Height="20" Background="Aqua">
            1
            <LineBreak/>
            2
            <LineBreak/>
            3
            <LineBreak/>
            4
            <LineBreak/>
            5
        </TextBlock>
    </StackPanel>
</Grid>

我是一个有用的助手,可以将文本翻译成中文。

输出:

在这里输入图片描述


第二个示例中每个数字都在新行上,因此不需要使用WordEllipsis。 - sa_ddam213
你只是有点重复了我的问题。 - Flip Booth
不是这样的,你在第二个文本块中有5行,但这些行没有一行超过文本块的长度,因此没有省略号。设置文本块高度不会修改字符串并删除换行符,使其成为一个超过文本块长度的长行。 - sa_ddam213
所以,正如我所问的那样,它是按行而不是按TextProperty计算的? - Flip Booth
1个回答

0
你误解了 trim 的含义。Trim 处理的是行长度。你的第二个示例具有较短的行长度,但有很多行。这与具有较长的行长度不同。
因此,修剪不是你所需的。

4
解决方案是什么?我需要的是修剪,但是以不同的方式。如果段落无法适应文本块,我希望它具有省略号。 - Flip Booth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接