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 — это WPFWPF подсистема текста, которая предоставляет службы для форматирования текста и разбиения текста на строки.TextFormatter is the WPFWPF 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)

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

Дополнительно