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 поддерживаемых служб для функций на уровне абзаца.

Компонент Описание
направление 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)

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

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