Поделиться через


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

Службы форматирования текста

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)

Применяется к

См. также раздел