Elide Text - PullRequest
       19

Elide Text

1 голос
/ 24 сентября 2008

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

c: \ very \ long \ path \ to \ a \ filename.txt сворачивается в c: ... \ filename.txt или c: \ very ... \ filename.txt. Вы получаете картинку - большее окно дает больше информации, сокращает ее, и вы по-прежнему получаете важные части пути. Я бы с удовольствием, если бы мне не нужно было настраивать элемент управления, но я могу жить с этим.

Персонализация переноса текста в WPF может показаться, что это может сработать, но я надеюсь на что-то более простое.

EDIT Извините, я хотел передать, что я хочу, чтобы значение изменялось в зависимости от ширины метки.

1 Ответ

1 голос
/ 24 сентября 2008

Этот пример вы дали для непрямоугольных контейнеров. Если вам это не нужно, вы можете использовать конвертер значений. Если он больше, чем метка, вы ставите эллипсы:

Не проверенный пример:

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...