В чем «концептуальная» разница между TextWrapping="Wrap"и TextWrapping="WrapWithOverflow"(например, для TextBox)? На странице MSDN про класс TextBox ничего нет ... Спасибо.
В чем «концептуальная» разница между TextWrapping="Wrap"и TextWrapping="WrapWithOverflow"(например, для TextBox)? На странице MSDN про класс TextBox ничего нет ... Спасибо.
Ответы:
WrapWithOverflow Разрыв строки происходит, если линия переполняется за пределы доступной ширины блока. Однако строка может переполниться за пределы ширины блока, если алгоритм разрыва строки не может определить возможность разрыва строки, как в случае очень длинного слова, ограниченного в контейнере фиксированной ширины без прокрутки.
NoWrap Перенос строки не выполняется.
Перенос строки происходит, если строка выходит за пределы доступной ширины блока, даже если стандартный алгоритм разрыва строки не может определить возможность разрыва строки, как в случае очень длинного слова, ограниченного в контейнере фиксированной ширины без прокрутки.
Надеюсь это поможет
WrapWithOverFlowкоторая не будет ломать слова, но Wrapбудет?
Некоторые примеры:
Это оригинальная, развернутая версия:

Это NoWrap.

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

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

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

Wrapполностью игнорирует пробелы, но это не так.
Одна вещь, которую нужно добавить к другим ответам, WrapWithOverflow позволяет использовать обрезку текста (многоточие) для длинных слов, которые обрезаются:
<TextBlock TextWrapping="WrapWithOverflow" Width="120" TextTrimming="CharacterEllipsis">
A really long word is antidisestablishmentarianism and we can use ellipsis trimming.
</TextBlock>
WrapWithOverflowон не поддерживается в Silverlight. ТолькоWrapиNoWrapподдерживаются в Silverlight. msdn.microsoft.com/en-us/library/…