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 поддерживаемых служб для функций уровня абзаца.
| Функция | Описание |
|---|---|
| Направление потока | Направление потока абзаца — слева направо или справа налево. См. FlowDirection свойство. |
| Отступ строки | Отступ для каждой строки в абзаце. См. Indent свойство. |
| Отметка | Характеристики маркера первой строки в абзаце. См. TextMarkerProperties свойство. |
| Отступ абзаца | Отступ для первой строки абзаца. См. ParagraphIndent свойство. |
| Вкладки | Включает поддержку выравнивания табуляции и лидера вкладок. |
| Ширина | Определите минимальную и максимальную ширину абзаца. FormatMinMaxParagraphWidth См. методы. |
| Word оболочка | Определите способ упаковки текста при достижении края потока. См. TextWrapping свойство. |
В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для функций уровня строки.
| Функция | Описание |
|---|---|
| Выравнивание | Выравнивание текста — влево, вправо, по центру или оправдано. См. TextAlignment свойство. |
| Высота строки | Высота линии. См. Height свойство. |
| Свертывание строк | Поддержка сворачивания строк. См. Collapse метод. |
| Измерение черного прямоугольника | Представляет метрики, используемые для размещения символа в шрифте устройства. См. класс CharacterMetrics. |
| Поддержка Caret | Поддержка навигации и редактирования в caret. См. свойства попадания символов TextLine , такие как GetNextCaretCharacterHit и GetPreviousCaretCharacterHit. |
В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для функций текстового уровня выполнения.
| Функция | Описание |
|---|---|
| Скрытый запуск | Диапазон символов, которые не видны. См. TextHidden объект. |
| Перерыв | Разрыв строк и абзаца. |
Конструкторы
| Имя | Описание |
|---|---|
| TextFormatter() |
Инициализирует новый экземпляр класса TextFormatter. |
Методы
| Имя | Описание |
|---|---|
| Create() |
Создает новый экземпляр класса TextFormatter. Это статический метод. |
| Create(TextFormattingMode) |
Создает новый экземпляр TextFormatter класса с указанным режимом форматирования. Это статический метод. |
| Dispose() |
Освобождает все управляемые и неуправляемые ресурсы, используемые TextFormatter объектом. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak, TextRunCache) |
Создает объект, используемый TextLine для форматирования и отображения содержимого документа. |
| FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak) |
Создает объект, используемый TextLine для форматирования и отображения содержимого документа. |
| FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache) |
Возвращает значение, представляющее наименьшую и самую большую ширину абзаца, которая может полностью содержать указанное текстовое содержимое. |
| FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties) |
Возвращает значение, представляющее наименьшую и самую большую ширину абзаца, которая может полностью содержать указанное текстовое содержимое. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |