c# - WPF 自定义 TextTrimming

标签 c# .net wpf trim

我需要做一个特殊的文本修剪。假设我的字符串是:abcd

默认修剪会给我这个:ab...

但我需要它。 a..d

知道如何实现吗?

目前我正在使用

<TextBlock Text="abcdLongWord" TextTrimming="CharacterEllipsis"/>

最佳答案

我过去有过这种担忧,并编写了自己的转换器来处理 Kearning 的过程。

转换器类

internal class KearningConverter : IValueConverter {

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
        string result = value.ToString();

        try {
            int length = int.Parse(parameter.ToString());

            if (result.Length > length) {
                result = result.Substring(0, length) + "...";
            }
        } catch {
            result += "...";
        }
        return result;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
        throw new NotImplementedException();
    }
}

Xaml 标记

xmlns:conv="clr-namespace:project.converters;assembly=project"

<Window.Resources>
<conv:KearningConverter x:Key="kearnConverter"/>
</Window.Resources>

<TextBlock Text="{Binding Path=AttributeName, Converter={StaticResource kearnConverter}, ConverterParameter=3}"/>

通过这种方式,您可以根据 UI 布局的不同要求实现多个学习。

关于c# - WPF 自定义 TextTrimming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15900194/

相关文章:

c# - 如何在 C# 中向图标添加文本?

用于容纳文件路径的 C# 代码从 windows 更改为 ftp(使用用户名密码)

c# - 在 C#.net 中处理大量数据表的有效方法

c# - Entity Framework - 为什么选择导航属性?

c# - 模糊而不是锐化

c# - 数据传输对象中的继承是一种不好的做法吗?

c# - 获取声明类的名称?

c# - 无法从程序集办公室 writer.process() 加载类型 'System.Data.OleDb.OleDbType'

WPF 更改样式按钮的字体大小失败?

c# - 如何将事件触发器添加到业务对象的数据模板?