代码之家  ›  专栏  ›  技术社区  ›  Thomas daign

ELID文本

wpf
  •  1
  • Thomas daign  · 技术社区  · 16 年前

    我有一个带有用户选择的目录路径的标签。当然,有些路比其他路长。我用的是 Resizer 在控件的标签生活,如果我可以有可变的路径省略它会喜欢它。

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

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

    编辑 对不起,我是想告诉你,我想根据标签的宽度来改变省略。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Artur Carvalho    16 年前

    您给出的示例是针对非矩形容器的。如果不需要,可以使用值转换器。如果它比标签大,可以用椭圆表示:

    未测试示例:

    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
    }