文字的Elid


1

我已经得到了用户选择的目录路径的标签。当然有些路径比其他路径长。我在标签所在的控件上使用了Resizer,并且如果我可以对路径进行变化消除,我会很喜欢它。

C:\非常\长\路径\为\ A \ FILENAME.TXT崩溃到C:\ FILENAME.TXTC:\非常\ FILENAME.TXT。你得到的图片 - 更大的窗口给出更多的信息,缩小它,你仍然得到了路径的重要部分。如果我不需要自定义控件,我会喜欢它,但我可以忍受它。

Custom Text Wrapping in WPF好像它会做的工作,但我希望使用一些更简单。

编辑 对不起,我的意思传达,我想基于标签的宽度eliding变化。

1

你给这个例子是对于非矩形容器。如果你不需要,你可以使用价值转换器。如果其大于标签,你把省略号:

未测试例如:

class EllipsisConverter : IValueConverter 
{ 
    #region IValueConverter Members 

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

if (path.Length > 100) 
{ 
return path.Substring(0, 100) + "..."; 
}else{ 
    return path; 
} 
    } 

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

    #endregion 
}