Текст WPF Wrap vs WrapWithOverflow

Какова "концептуальная" разница между TextWrapping="Wrap" и TextWrapping="WrapWithOverflow" (например, для TextBox)? На странице MSDN о классе TextBox нет ничего... Спасибо.

Ответ 1

MSDN

WrapWithOverflow Разрыв строки происходит, если линия выходит за пределы доступная ширина блока. Однако линия может переполняться за пределы ширина блока, если алгоритм нарушения линии не может определить линию как в случае очень длинного слова, ограниченного в контейнер с фиксированной шириной без возможности прокрутки.
NoWrap Нет строки завершение упаковки.
Обтекание Разрыв линии происходит, если линия переполнения за пределы доступной ширины блока, даже если стандартная строка алгоритм разбиения не может определить возможность разрыва строки, как в случай очень длинного слова, ограниченного контейнером с фиксированной шириной без возможности прокрутки.

Надеюсь, что это поможет

Ответ 2

Некоторые примеры:

Это оригинальная, развернутая версия:

No wrapping


Это NoWrap.

NoWrap


Это Wrap. Слова Remove и Sample были обернуты соответственно ve и le, даже если нет возможности разрыва строки.

Wrap


Это WrapWithOverflow. ve и le не видны (они переполняют доступную ширину блока), потому что нет возможности разрыва строки. All, в обоих случаях, был обернут, потому что символ space является возможностью разрыва строки.

WrapWithOverflow


Edit:

Как указано в комментариях, здесь приведены некоторые примеры того, как Wrap обрабатывает пробелы. Когда Width 100, Wrap и WrapWithOverflow идентичны. Wrap обрабатывает пространство между wider и example как возможность прерывания строки, поэтому example помещается в новую строку для сохранения всего непрерывного слова.

enter image description here

Ответ 3

Одна вещь, которую нужно добавить к другим ответам, WrapWithOverflow позволяет использовать обрезку текста (многоточие) для длинных слов, которые обрезаются:

enter image description here

<TextBlock TextWrapping="WrapWithOverflow" Width="120" TextTrimming="CharacterEllipsis">
    A really long word is antidisestablishmentarianism and we can use ellipsis trimming.
</TextBlock>