Знакомство с объектом GlyphRun и элементом Glyphs
Обновлен: Ноябрь 2007
В этом разделе описывается объект GlyphRun и элемент Glyphs.
В этом разделе содержатся следующие подразделы.
- Введение в GlyphRun
- Объект GlyphRun
- Элемент Glyphs
- Метрики глифа
- Разметка глифа
- Связанные разделы
Введение в GlyphRun
Приложение Windows Presentation Foundation (WPF) обеспечивает дополнительную поддержку текста, включая разметку на уровне глифа с прямым доступом к объекту Glyphs для пользователей, которым нужно перехватывать и сохранять текст после форматирования. Эти возможности предоставляют важную поддержку различных требований к отрисовке текста в следующих сценариях.
Отображение на экране документов фиксированного формата.
Сценарии печати.
Язык XAML (Extensible Application Markup Language) как язык принтера.
Средство для записи XPS-документов (Майкрософт).
Предыдущие драйверы принтера, приведенные из приложений Win32 к фиксированному формату.
Формат очереди печати.
Представление документов фиксированного формата, включая клиенты предыдущих версий Windows и другие вычислительные устройства.
![]() |
---|
Объекты Glyphs и GlyphRun предназначены для представления документа фиксированного формата и сценариев печати. Приложение Windows Presentation Foundation (WPF) предоставляет несколько элементов для общего макета и сценариев пользовательский интерфейс, таких как Label и TextBlock. Дополнительные сведения о макете и сценариях Пользовательский интерфейс см. в разделе Типография в Windows Presentation Foundation. |
Объект GlyphRun
Объект GlyphRun представляет последовательность глифов одного шрифта одного размера и с одним стилем отрисовки.
GlyphRun включает детали шрифта, такие как глиф Indices и отдельные позиции глифов. Он также включает исходные кодовые точки Юникод, из которых был сгенерирован запуск, сведения о сопоставлении смещения буфера символ-в-глиф и флаги каждого символа и глифа.
GlyphRun имеет соответствующие FrameworkElement, Glyphs высокого уровня. Glyphs могут быть использованы в дереве элементов и в разметке XAML для представления вывода GlyphRun.
Элемент Glyphs
Элемент Glyphs представляет выходные данные GlyphRun в XAML. Следующий синтаксис разметки используется для описания элемента Glyphs.
<!-- The example shows how to use a Glyphs object. -->
<Page
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
>
<StackPanel Background="PowderBlue">
<Glyphs
FontUri = "C:\WINDOWS\Fonts\TIMES.TTF"
FontRenderingEmSize = "100"
StyleSimulations = "BoldSimulation"
UnicodeString = "Hello World!"
Fill = "Black"
OriginX = "100"
OriginY = "200"
/>
</StackPanel>
</Page>
Следующие определения свойств соответствуют первым четырем атрибутам в примере разметки.
Свойство |
Описание |
---|---|
Указывает идентификатор ресурса: имя файла, URI (uniform resource identifier — универсальный код ресурса) или ссылку на ресурс в файле EXE или контейнере приложения. |
|
Указывает размер шрифта в единицах графической поверхности (по умолчанию 0,96 дюйма). |
|
Задает флаги для полужирного стиля и курсива |
|
Задает уровень двунаправленного макета. Четные и нулевые значения подразумевают расположение слева-направо; нечетные значения подразумевают расположение справа-налево. |
Свойство индексов
Свойство Indices является строкой спецификаций глифа. Где последовательность глифов формирует один кластер, спецификации первого глифа в кластере предшествует указание количества глифов и кодовых точек, формирующих кластер. Свойство Indices собирает в одной строке следующие свойства.
Индексы глифа
Дополнительная ширина глифа
Объединение векторов присоединения глифа
Сопоставление кластера из точек кода глифам
Флаги глифа
Каждая спецификация глифа имеет следующий вид.
[GlyphIndex][,[Advance][,[uOffset][,[vOffset][,[Flags]]]]]
Метрики глифа
Каждый глиф определяет метрику, задающую способ выравнивания с другими Glyphs. На следующем рисунке определяются различные условные обозначения для символов двух различных глифов.
Разметка глифа
В следующем примере показано, как использовать различные свойства элемента Glyphs в XAML.
<!-- The example shows how to use different property settings of Glyphs objects. -->
<Canvas
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
Background="PowderBlue"
>
<Glyphs
FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "ItalicSimulation"
UnicodeString = "Hello World!"
Fill = "SteelBlue"
OriginX = "50"
OriginY = "75"
/>
<!-- "Hello World!" with default kerning -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
FontRenderingEmSize = "36"
UnicodeString = "Hello World!"
Fill = "Maroon"
OriginX = "50"
OriginY = "150"
/>
<!-- "Hello World!" with explicit character widths for proportional font -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
FontRenderingEmSize = "36"
UnicodeString = "Hello World!"
Indices = ",80;,80;,80;,80;,80;,80;,80;,80;,80;,80;,80"
Fill = "Maroon"
OriginX = "50"
OriginY = "225"
/>
<!-- "Hello World!" with fixed-width font -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\COUR.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "BoldSimulation"
UnicodeString = "Hello World!"
Fill = "Maroon"
OriginX = "50"
OriginY = "300"
/>
<!-- "Open file" without "fi" ligature -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\TIMES.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "BoldSimulation"
UnicodeString = "Open file"
Fill = "SlateGray"
OriginX = "400"
OriginY = "75"
/>
<!-- "Open file" with "fi" ligature -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\TIMES.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "BoldSimulation"
UnicodeString = "Open file"
Indices = ";;;;;(2:1)191"
Fill = "SlateGray"
OriginX = "400"
OriginY = "150"
/>
</Canvas>
См. также
Основные понятия
Типография в Windows Presentation Foundation