我有一个带有用户选择目录路径的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的宽度而变化。
答案 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
}