TextFormatter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет службы для форматирования текста и разбивки текста на строки с помощью пользовательского клиента текстового макета.
public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
- Наследование
-
TextFormatter
- Реализации
Примеры
В следующем примере показано, как использовать TextFormatter объект для создания форматированных строк текста, которые могут отображаться в виде объектов рисования.
// Create a TextFormatter object.
TextFormatter formatter = TextFormatter.Create();
// Create common paragraph property settings.
CustomTextParagraphProperties customTextParagraphProperties
= new CustomTextParagraphProperties();
// Format each line of text from the text store and draw it.
while (textStorePosition < customTextSource.Text.Length)
{
// Create a textline from the text store using the TextFormatter object.
using (TextLine myTextLine = formatter.FormatLine(
customTextSource,
textStorePosition,
96 * 6,
customTextParagraphProperties,
null))
{
// Draw the formatted text into the drawing context.
myTextLine.Draw(drawingContext, linePosition, InvertAxes.None);
// Update the index position in the text store.
textStorePosition += myTextLine.Length;
// Update the line position coordinate for the displayed line.
linePosition.Y += myTextLine.Height;
}
}
' Create a TextFormatter object.
Dim formatter As TextFormatter = TextFormatter.Create()
' Create common paragraph property settings.
Dim customTextParagraphProperties As New CustomTextParagraphProperties()
' Format each line of text from the text store and draw it.
Do While textStorePosition < customTextSource.Text.Length
' Create a textline from the text store using the TextFormatter object.
Using myTextLine As TextLine = formatter.FormatLine(customTextSource, textStorePosition, 96 * 6, customTextParagraphProperties, Nothing)
' Draw the formatted text into the drawing context.
myTextLine.Draw(drawingContext, linePosition, InvertAxes.None)
' Update the index position in the text store.
textStorePosition += myTextLine.Length
' Update the line position coordinate for the displayed line.
linePosition.Y += myTextLine.Height
End Using
Loop
Комментарии
TextFormatter — это обработчик текста WPF, предоставляющий службы для форматирования текста и критических текстовых строк. TextFormatter может обрабатывать различные форматы текстовых символов и стили абзацев, включая поддержку международного макета текста.
В отличие от традиционного API текста, TextFormatter взаимодействие с клиентом макета текста выполняется с помощью набора методов обратного вызова. Клиенту требуется предоставить эти методы в реализации TextSource класса. На следующей схеме показано взаимодействие клиента форматирования текста и клиента макета текста.
Взаимодействие между клиентом макета текста и объектом TextFormatter
Службы форматирования текста
TextFormatter обеспечивает поддержку текстовых функций, таких как типография OpenType, а также поддержка функций на уровне текста, строки и абзаца.
В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для текстовых функций.
Компонент | Описание |
---|---|
Фоновая кисть | Используется Brush для цвета фона. См. описание свойства BackgroundBrush. |
Выравнивание базовых показателей | Определяет базовое расстояние линии. См. описание свойства BaselineAlignment. |
Связывание шрифтов | Обеспечивает связывание шрифтов с помощью составных шрифтов. |
Кисть переднего плана | Используется Brush для цвета переднего плана. См. описание свойства ForegroundBrush. |
OpenType | Расширенные функции typeographic OpenType, такие контекстные альтернативные варианты и стандартные лигатуры. См. TextRunTypographyProperties свойства класса. |
Шрифт | Определяет шрифт, а также вес, стиль и растяжение. См. описание свойства Typeface. |
Оформление текста | Обеспечивает поддержку TextDecoration объектов, таких как подчеркивание или зачеркивное. См. описание свойства TextDecorations. |
Эффекты текста | Обеспечивает поддержку TextEffect объектов. См. описание свойства TextEffects. |
В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для функций на уровне абзаца.
Компонент | Описание |
---|---|
направление Flow | Flow направление абзаца — слева направо или справа налево. См. описание свойства FlowDirection. |
Отступ линии | Отступ для каждой строки абзаца. См. описание свойства Indent. |
Маркер | Характеристики маркера первой строки в абзаце. См. описание свойства TextMarkerProperties. |
Отступ абзаца | Отступ для первой строки абзаца. См. описание свойства ParagraphIndent. |
Вкладки | Включает поддержку выравнивания табуляции и лидера вкладок. |
Ширина | Определите минимальную и максимальную ширину абзаца. См. FormatMinMaxParagraphWidth методы. |
Перенос по словам | Определите, как выполняется перенос текста при достижении края потока. См. описание свойства TextWrapping. |
В следующей таблице приведен список основных TextFormatter поддерживаемых служб для функций на уровне строк.
Компонент | Описание |
---|---|
Выравнивание | Выравнивание текста — слева, справа, по центру или по центру. См. описание свойства TextAlignment. |
Высота линии | Высота линии. См. описание свойства Height. |
Свертывание линий | Поддержка сворачивания строк. См. Collapse метод. |
Измерение черного ящика | Представляет метрики, используемые для отображения символа в шрифте устройства. См. класс CharacterMetrics. |
Поддержка курсора | Поддержка навигации и редактирования курсора. Просмотр свойств попадания символов TextLine , таких как GetNextCaretCharacterHit и GetPreviousCaretCharacterHit. |
В следующей таблице приведен список основных TextFormatter поддерживаемых служб для функций текстового уровня выполнения.
Компонент | Описание |
---|---|
Скрытый запуск | Диапазон символов, которые не видны. См. TextHidden объект. |
Критическое | Разрыв строки и абзаца. |
Конструкторы
TextFormatter() |
Инициализирует новый экземпляр класса TextFormatter. |
Методы
Create() |
Создает новый экземпляр класса TextFormatter. Это статический метод. |
Create(TextFormattingMode) |
Создает новый экземпляр класса TextFormatter в заданном режиме форматирования. Это статический метод. |
Dispose() |
Освобождает все управляемые и неуправляемые ресурсы, используемые объектом TextFormatter. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak) |
Создает текстовую строку TextLine, используемую для форматирования и отображения содержимого документа. |
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak, TextRunCache) |
Создает текстовую строку TextLine, используемую для форматирования и отображения содержимого документа. |
FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties) |
Возвращает значение, представляющее наименьшую и наибольшую ширину абзаца, в который может полностью поместиться заданное текстовое содержимое. |
FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache) |
Возвращает значение, представляющее наименьшую и наибольшую ширину абзаца, в который может полностью поместиться заданное текстовое содержимое. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |