XAML - TextTrimming 不适用于 LineBreaks?

Posted

技术标签:

【中文标题】XAML - TextTrimming 不适用于 LineBreaks?【英文标题】:XAML - TextTrimming does not work with LineBreaks? 【发布时间】:2014-10-23 01:22:03 【问题描述】:

为什么 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 你只是重复了我的问题。 不是真的,第二行有 5 行,这些行都没有比 TextBlock 长,所以没有应用省略号,设置 TextBlock 高度不会修改字符串并删除换行符比文本块长的一行。 所以,正如我所问的,它是每个 LINE,而不是每个 TextProperty? 【参考方案1】:

您误解了trim 的含义。修剪处理行长。您的第二个示例的行长很短,但有很多行。这与长线不同。

因此修剪不是您需要的。

【讨论】:

解决办法是什么?修剪是我需要的,但以不同的方式。如果段落不适合文本块,我希望它有省略号

以上是关于XAML - TextTrimming 不适用于 LineBreaks?的主要内容,如果未能解决你的问题,请参考以下文章

RxUI ObservableAsPropertyHelper 不适用于 XAML 绑定

全局资源不适用于 xaml 中的控件样式

静态初始化不适用于 c# 和 xaml

Xaml实时编辑不适用于自定义解决方案配置

UWP IsNullOrEmptyStateTrigger 不适用于 ListView

DataBinding 不适用于 DataGrid 中的 Combobox