伊莱德文字

时间:2020-03-06 14:37:33  来源:igfitidea点击:

我有一个带有用户选择的目录路径的标签。当然,某些路径比其他路径更长。我在Label所在的控件上使用了Resizer,如果我可以对路径进行可变省略,则非常喜欢。

c:\非常\长\路径\到\ a \ filename.txt折叠到c:... \ filename.txt或者c:\非常... \ filename.txt。我们得到的图片更大,窗口提供了更多的信息,将其缩小,我们仍然可以获得路径的重要部分。如果我不需要自定义控件,我会喜欢的,但是我可以接受它。

WPF中的自定义文本包装似乎可以完成这项工作,但我希望有一些简单的方法。

编辑
抱歉,我想传达的是我希望选件根据Label的宽度而变化。

解决方案

我们提供的示例适用于非矩形容器。如果不需要,可以使用值转换器。如果它大于标签,则放置椭圆:

未经测试的示例:

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
}