Elide Text


1

У меня есть ярлык с выбранным пользователем пути к каталогу. Конечно, некоторые пути длиннее других. Я использую Resizer на элементе управления, на котором находится ярлык, и мне понравится, если бы у меня была переменная, возвращающаяся по пути.

C: \ очень \ длинный \ путь \ к \ а \ filename.txt схлапывание в с: ... \ filename.txt или C: \ очень ... \ filename.txt. Вы получаете изображение - большее окно дает больше информации, сжимает его, и вы все равно получаете важные части пути. Мне бы это понравилось, если бы у меня не было специального контроля, но я могу жить с ним.

Custom Text Wrapping in WPF похоже, что это может сработать, но я надеюсь на что-то более простое.

EDIT Извините, я хотел передать, что я хочу, чтобы 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 
}