В чем «концептуальная» разница между 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/…