Есть много различных типов приложений, которые требуют специальной обработки текста, например, приложения, которые имеют строгие требования выравнивания; в которых необходимо использовать небольшие участки текста; которые отображают несколько языков и другие. И мы знаем, что в этих “специальных” приложениях важно сделать идеальным каждый пиксель для оптимального отображения. По этой причине в Windows 8.1 добавили некоторые новые функции для работы с текстом.
- В общей сложности насчитывается десять новых усовершенствований. Вот несколько основных моментов:
- Цвет для отображения Emoji символов — смайлики и символы по умолчанию, без каких-либо дополнительных затрат с вашей стороны.
- Функция выравнивания отступами, которая позволяет выравнивать текст с определенным вертикальным отступом. Эта функция полезна для выравнивания текста различных размеров.
- Функции обрезки, которая позволяет вырезать текст на логическом начале. Это очень удобно для двунаправленного сценария.
- Функция, позволяющая установить максимальное количество строк текста в TextBlock.
- Гиперссылка, которая позволяет вам легко использовать ссылки в блоке текста.
В этой статье я дам вам основы каждой из усовершенствованных функций, пример кода и ссылку на документацию MSDN. Давайте начнем!
Добавление большего количества цветов
Цвет шрифтов
Цвет шрифта — новая функция для DirectWrite в Windows 8.1, была реализована поддержка в XAML. Был обновлен системный шрифт для поддержки нескольких слоев цвет каждого символа. Это улучшение дает больше возможностей дизайнерам для создания цветовых слоев каждого символа. У XAML есть свойство по-умолчанию — IsColorFontEnabled, которое вы можете отключить, если хотите отказаться от стандартной отрисовки шрифта.
В Windows 8.1 появился с новый шрифт «Segoe UI Emoji», который включает в себя цветной слой для персонажей Emoji.
Вот как это будет выглядеть:
Примечание: В режиме высокого контраста, XAML будет отрисовывать текст без цвета.
Ссылки для получения дополнительной информации по этой теме:
- Petzold Book Blog: Multicolor Font Characters in Windows 8.1
- Microsoft adds mulit-color fonts in Windows 8.1, proposes OpenType standard
- Color Emoji in Windows 8.1 – The Future of Color Fonts?
SelectionHighlightColor
У всех текстовых элементов управления теперь есть свойство SelectionHighlightColor, которое можно использовать для установки цвета подсветки для выделенного текста. Это означает, что ваше приложение может использовать свой собственный уникальный цвет для выделения текста в приложении.
Шаблоны текстовых элементов управления используют ThemeResource TextSelectionHighlightColorThemeBrush для установки цвета по умолчанию. Если вы хотите изменить цвет выделения для всех текстовых элементов управления можно установить в ThemeResource app.xaml.
В следующем примере, свойство SelectionHighlightColor применяется только к одному TextBox (TextBox1).
Результат:
В следующем примере, TextSelectionHighlightColorThemeBrush используется как ресурс приложения и поэтому он используется для всех текстовых полей в приложении.
Примечание: В режиме высокого контраста, цвета заменяются стандартными.
Больше возможностей выравнивания
Оптическое выравнивание полей
Шрифты обычно включают интервал слева и справа от каждого символа, так чтобы соседние символы не пересекались друг с другом . Но в некоторых случаях вам может потребоваться удалить интервал на старте. Установите OpticalMarginAlignment в значение TrimSideBearings и лишнее пространство исчезнет, также если присмотреться, то выравнивание текста по краю оправданно. В следующих примерах, вы можете увидеть, когда OpticalMarginAlignment установлен в TrimSideBearings, весь текст, независимо от того, какого размера, выстраивается впритык к линии. Красная линия — наглядное пособие и не является частью разметки.
Текст, как правило, содержит в себе пространство над и под символами. Вы можете использовать TextLineBounds для обрезки данного пространства. Ниже приведена диаграмма, которая показывает и определяет данные условия.
Основной причиной использования этого свойства — управление выравниванием текстовых элементов, например, для выравнивания базовых заголовков страниц. Свойство влияет на высоту строки. Это значение в свою очередь, влияет на строку текста, находящихся в непосредственной связи с другими элементами, например, другой строкой текста, или содержащие элементы, такие как границы, которые можно адаптировать к размеру содержимого.
Следующий пример показывает серию TextBlock’ов с различными значениями свойства TextLineBounds, используя границы, чтобы проиллюстрировать размер каждого блока. Граница в настоящее время используется в качестве наглядного пособия и не является необходимым для получения этого результата. Обратите внимание, что вертикальное выравнивание установлено в значение Bottom и используется для выравнивания всех границ.
Результат:
На этом первая часть данной статьи подошла к концу, следующие обновления читайте далее.
[…] статья является продолжением предыдущейи в ней я расскажу вам, что еще нового и интересного […]
[…] статья является продолжением предыдущей и в ней я расскажу вам, что еще нового и интересного […]