Данная статья является продолжением предыдущей и в ней я расскажу вам, что еще нового и интересного появилось для работы с текстом в Windows 8.1.
Улучшенный перенос и обрезание текста
Перенос
Добавили три новых значения, которые можно использовать для переноса и обрезки текста. При переносе мы можем использовать новое значение WrapWholeWords, которое переносит только целое слово, а не разбивает его. Это свойство предназначено для очень маленьких компонентов, таких как плитки, которые могут отображать только небольшое количество текста. Когда очень длинное слово, URL или имя файла, вы можете обрезать текст, так чтобы пользователь мог видеть весь текст. WrapWholeWords помогает пользователю увидеть остальной текст. На рисунках ниже показаны результаты нового свойства WrapWholeWords рядом с результатом “старого” Wrap.
Обрезка
Свойство TextTrimming позволяет обрезать текст четырьмя различными способами . Возможно, вы уже знакомы с WordEllipsis, которая урезает текста на границе слова и рисует многоточие в оставшемся месте, и None, которая обрезает текст, не делая никаких многоточий, а также значение по умолчанию.
Но появился CharacterEllipsis, который многие из вас могут знать из WPF. CharacterEllipsis режет текст по границе символа и рисует многоточие в оставшемся месте. Также появилось новое перечисление, которое называется Clip. Оно обрезает текст, не используя многоточие, чем-то похож на None, однако есть разница, когда происходит перенос и есть определенный MaxHeight .
Когда TextTrimming установлен в None и указан MaxHeight, текст обрезается в соответствии с обоими спецификациями, даже если это означает обрезку слова по горизонтали.
Для всех остальных значений перечисления (Character Ellipsis, Word Ellipsis и Clip) текст не обрезается горизонтально, даже когда MaxHeight указан.
Примеры всех этих форм поведения:
Еще одно важное различие между Clip и None — обрабатывание двунаправленного текста. Например, если вы хотите локализовать приложение под английский и арабский языки (справа-налево, больше известный как RTL язык), None обрежет текст справа-налево (начало текста в арабском языке). Clip будет обрезать текст на арабском языке от центра двигаясь вправо. Таким образом, Clip обрежет логический конца текста в любом случае. В приведенном ниже примере, я сравниваю эти две строки (красные части текста на арабском языке подвергнуться обрезке).
MaxLines
Свойство MaxLines позволяет установить максимальное количество строк текста отображаемых в TextBlock’е. По умолчанию — 0, является специальным значением, которому представляется «автоматическое” поведение. Текст регулирует его высоту, чтобы показывать не больше, чем заданное число строк, независимо от размера шрифта. Это свойство обычно используется с TextWrapping установленным в Wrap или WrapWholeWords значения.
Один из вариантов использования: позволяет отобразить только определенное количество текста, который будет отображаться из источников, таких как названия фильмов или газетных заголовках.
Гиперссылка
Предназначена быть частью текстового содержимого RichTextBlock или TextBlock но в пределах других контейнеров текста. Основная цель этого нового элемента — легко вложить ссылку в блок текста. Этот пример показывает, как ее можно использовать.
Событие вставки
Есть моменты, при которых вы хотите знать, когда пользователь вставляет определенное содержимое в текстовое поле или RichEditBox. Поэтому появилось новое событие Past в этих элементах управления, так что вы можете переопределить поведение по умолчанию, если вам нужно.
Подведение итогов
Я уверен, что эти новые возможности сделают разработку еще проще, для достижения желаемого конечного продукта. Они могут принести больше цвета в ваши приложения, а также дать вам больше возможностей для выравнивания, переноса и обрезки текста, плюс конечно же использование гиперссылки.
Ссылка на источник: XAML text improvements in Windows 8.1
[…] На этом первая часть данной статьи подошла к концу, следующие обновления читайте далее. […]