Elide Text

时间:2008-09-23 20:40:56

标签: wpf

我有一个带有用户选择目录路径的Label。当然,有些路径比其他路径长。我在Label所使用的控件上使用Resizer,如果我可以改变路径的变化,我会喜欢它。

c:\ very \ long \ path \ to \ a \ filename.txt 折叠到 c:... \ filename.txt c: \ very ... \ filename.txt。你得到的图片 - 更大的窗口提供更多信息,缩小它,你仍然得到路径的重要部分。如果我不需要自定义控件,我会喜欢它,但我可以忍受它。

Custom Text Wrapping in WPF似乎可以完成这项工作,但我希望能有更简单的事情。

EDIT 对不起,我打算传达我希望eliding根据Label的宽度而变化。

1 个答案:

答案 0 :(得分: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
}