TextFormatter Класс

Определение

Предоставляет службы для форматирования текста и разбивки текста на строки с помощью пользовательского клиента текстового макета.Provides services for formatting text and breaking text lines using a custom text layout client.

public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
    interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
Наследование
TextFormatter
Реализации

Примеры

В следующем примере показано, как использовать TextFormatter объект для создания форматированных строк текста, которые могут отображаться как графические объекты.The following example shows how to use a TextFormatter object to generate formatted lines of text that can be displayed as drawing objects.

// 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 is the WPF text engine that provides services for formatting text and breaking text lines. TextFormatter может работать с различными форматами текстовых символов и стилями абзацев, а также поддерживает международные макеты текста.TextFormatter can handle different text character formats and paragraph styles, and includes support for international text layout.

В отличие от традиционного текстового API, TextFormatter взаимодействует с клиентом макета текста через набор методов обратного вызова.Unlike a traditional text API, the TextFormatter interacts with a text layout client through a set of callback methods. Он требует, чтобы клиент предоставил эти методы в реализации TextSource класса.It requires the client to provide these methods in an implementation of the TextSource class. На следующей схеме показано взаимодействие клиента модуля форматирования текста и клиента макета текста.The following diagram illustrates the interaction of the text formatter client and the text layout client.

Схема клиента структуры текста и TextFormatterDiagram of text layout client and TextFormatter
Взаимодействие между клиентом макета текста и объектом TextFormatterInteraction between the text layout client and the TextFormatter object

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

TextFormatter обеспечивает поддержку текстовых функций, таких как Оформление OpenType, а также поддержку функций на уровне текста, линий и абзацев.TextFormatter provides support for text features, such as OpenType typography, as well as support for text run, line, and paragraph level features.

В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для работы с текстом.The following table is a list of the key TextFormatter supported services for text features.

КомпонентFeature ОписаниеDescription
Кисть фонаBackground brush Объект Brush , используемый для цвета фона.The Brush that is used for the background color. См. описание свойства BackgroundBrush.See the BackgroundBrush property.
Выравнивание по базовому плануBaseline alignment Определяет базовое расстояние линии.Determines the baseline distance of the line. См. описание свойства BaselineAlignment.See the BaselineAlignment property.
Связывание шрифтовFont linking Обеспечивает связь шрифтов с помощью составных шрифтов.Provides font linking through the use of composite fonts.
Кисть переднего планаForeground brush Объект Brush , используемый для цвета переднего плана.The Brush that is used for the foreground color. См. описание свойства ForegroundBrush.See the ForegroundBrush property.
OpenTypeOpenType Расширенные типографские функции OpenType, такие как контекстные варианты и стандартные лигатуры.Advanced OpenType typographic features, such contextual alternates and standard ligatures. См TextRunTypographyProperties . свойства класса.See the TextRunTypographyProperties class properties.
ШрифтTypeface Определяет шрифт, а также его толщину, стиль и растяжение.Determines the typeface, as well as, weight, style, and stretch. См. описание свойства Typeface.See the Typeface property.
Оформление текстаText decoration Обеспечивает поддержку TextDecoration объектов, таких как подчеркивание или Зачеркнутый.Provides support for TextDecoration objects, such as underline or strikethrough. См. описание свойства TextDecorations.See the TextDecorations property.
Эффекты текстаText effects Обеспечивает поддержку TextEffect объектов.Provides support for TextEffect objects. См. описание свойства TextEffects.See the TextEffects property.

В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для функций уровня абзаца.The following table is a list of the key TextFormatter supported services for paragraph-level features.

КомпонентFeature ОписаниеDescription
Направление потокаFlow direction Направление текста абзаца: слева направо или справа налево.Flow direction of the paragraph - left-to-right, or right-to-left. См. описание свойства FlowDirection.See the FlowDirection property.
Отступ строкLine indentation Отступ для каждой строки в абзаце.Indentation for each line in the paragraph. См. описание свойства Indent.See the Indent property.
МаркерMarker Характеристики маркера первой строки абзаца.Marker characteristics of the first line in the paragraph. См. описание свойства TextMarkerProperties.See the TextMarkerProperties property.
Отступ абзацаParagraph indentation Отступ для первой строки абзаца.Indentation for the first line in the paragraph. См. описание свойства ParagraphIndent.See the ParagraphIndent property.
ВкладкиTabs Включает поддержку выравнивания по клавише TAB и заполнения табуляции.Includes support for tab alignment and tab leader.
ШиринаWidth Определите минимальную и максимальную ширину абзаца.Determine minimum and maximum paragraph width. См FormatMinMaxParagraphWidth . методы.See the FormatMinMaxParagraphWidth methods.
Перенос по словамWord wrap Определите, как текст переносится при достижении границы потока.Determine how text wraps when it reaches the flow edge. См. описание свойства TextWrapping.See the TextWrapping property.

В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для функций уровня строк.The following table is a list of the key TextFormatter supported services for line-level features.

КомпонентFeature ОписаниеDescription
ВыравниваниеAlignment Выравнивание текста — слева, справа, по центру или по ширине.Text alignment - left, right, centered, or justified. См. описание свойства TextAlignment.See the TextAlignment property.
Высота линииLine height Высота линии.Height of the line. См. описание свойства Height.See the Height property.
Свертывание строкLine collapsing Поддержка свертывания строк.Line collapsing support. См Collapse . метод.See the Collapse method.
Измерение "черная рамка"Black box measurement Представляет метрики, используемые для отображения символа в шрифте устройства.Represents the metrics used to lay out a character in a device font. См. класс CharacterMetrics.See the CharacterMetrics class.
Поддержка курсораCaret support Поддержка навигации и редактирования курсора.Caret navigation and editing support. Просмотрите TextLine свойства нажатия символа, такие как GetNextCaretCharacterHit и GetPreviousCaretCharacterHit .See the TextLine character hit properties, such as GetNextCaretCharacterHit and GetPreviousCaretCharacterHit.

В следующей таблице приведен список ключевых TextFormatter поддерживаемых служб для функций уровня выполнения текста.The following table is a list of the key TextFormatter supported services for text run-level features.

КомпонентFeature ОписаниеDescription
Скрытый запускHidden run Диапазон невидимых символов.Range of characters that are not visible. См TextHidden . объект.See the TextHidden object.
КритическоеBreaking Разрывы строк и абзацев.Line and paragraph breaking.

Конструкторы

TextFormatter()

Инициализирует новый экземпляр класса TextFormatter.Initializes a new instance of the TextFormatter class.

Методы

Create()

Создает новый экземпляр класса TextFormatter.Creates a new instance of the TextFormatter class. Это статический метод.This is a static method.

Create(TextFormattingMode)

Создает новый экземпляр класса TextFormatter в заданном режиме форматирования.Creates a new instance of the TextFormatter class with the specified formatting mode. Это статический метод.This is a static method.

Dispose()

Освобождает все управляемые и неуправляемые ресурсы, используемые объектом TextFormatter.Releases all managed and unmanaged resources used by the TextFormatter object.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak)

Создает текстовую строку TextLine, используемую для форматирования и отображения содержимого документа.Creates a TextLine that is used for formatting and displaying document content.

FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak, TextRunCache)

Создает текстовую строку TextLine, используемую для форматирования и отображения содержимого документа.Creates a TextLine that is used for formatting and displaying document content.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Возвращает значение, представляющее наименьшую и наибольшую ширину абзаца, в который может полностью поместиться заданное текстовое содержимое.Returns a value that represents the smallest and largest possible paragraph width that can fully contain the specified text content.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Возвращает значение, представляющее наименьшую и наибольшую ширину абзаца, в который может полностью поместиться заданное текстовое содержимое.Returns a value that represents the smallest and largest possible paragraph width that can fully contain the specified text content.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

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