【问题标题】:WPF MultiLine TextTrimmingWPF 多行文本修剪
【发布时间】:2015-01-12 04:08:58
【问题描述】:

当我们有多行文本时,我们需要显示字符省略号(即显示文本被修剪)。

当内容大于多行 TextBlock 的宽度时(即 TextWrapping 设置为 Wrap),文本块会显示尾随省略号。

但是我们有一种情况,无论第一行的文本宽度是否大于文本块的宽度,我们只需要用省略号显示一行。

例如,考虑以下示例文本

String str = "1\n2\n3456\n45889";
textBlock.Text = str;

TextBlock 应显示如下:

1...

工具提示将显示整个文本。我尝试对可能性进行一些研究,但找不到太多帮助,想知道社区中是否有人遇到过这种情况或者可以建议我?

因为,我们不应该更改底层数据对象(实时场景),而只更改呈现给用户的内容,我猜 Converter 应该可以解决问题,但我仍然坚持如何继续。或者你们还有其他选择吗?

【问题讨论】:

  • 用文本框代替块不能解决这个问题吗?

标签: c# .net wpf textblock texttrimming


【解决方案1】:

根据处理椭圆所需业务逻辑的文本块创建一个自定义控件。

将实际文本绑定到特定属性可以确保文本不被更改。在单独的属性中,您可以看到带有椭圆的可视文本,当原始文本更改(依赖属性更改事件)和随后显示在屏幕上的 visual 文本时,该椭圆会更新。还将工具提示绑定到原始文本,这有助于显示实际文本而不是 省略 文本。

通过创建一个简单的自定义控件,您可以在一个位置处理所有业务逻辑,并且可以在其他屏幕和项目中使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2016-06-12
    • 2011-08-22
    • 2018-09-24
    • 1970-01-01
    相关资源
    最近更新 更多