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


FormattedText Класс

Определение

Обеспечивает низкоуровневое управление рисованием текста в приложениях Windows Presentation Foundation (WPF).

public ref class FormattedText
public class FormattedText
type FormattedText = class
Public Class FormattedText
Наследование
FormattedText

Примеры

В следующем примере создается FormattedText объект , а затем к тексту применяется несколько стилей форматирования.

protected override void OnRender(DrawingContext drawingContext)
{
    string testString = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor";

    // Create the initial formatted text string.
    FormattedText formattedText = new FormattedText(
        testString,
        CultureInfo.GetCultureInfo("en-us"),
        FlowDirection.LeftToRight,
        new Typeface("Verdana"),
        32,
        Brushes.Black);

    // Set a maximum width and height. If the text overflows these values, an ellipsis "..." appears.
    formattedText.MaxTextWidth = 300;
    formattedText.MaxTextHeight = 240;

    // Use a larger font size beginning at the first (zero-based) character and continuing for 5 characters.
    // The font size is calculated in terms of points -- not as device-independent pixels.
    formattedText.SetFontSize(36 * (96.0 / 72.0), 0, 5);

    // Use a Bold font weight beginning at the 6th character and continuing for 11 characters.
    formattedText.SetFontWeight(FontWeights.Bold, 6, 11);

    // Use a linear gradient brush beginning at the 6th character and continuing for 11 characters.
    formattedText.SetForegroundBrush(
                            new LinearGradientBrush(
                            Colors.Orange,
                            Colors.Teal,
                            90.0),
                            6, 11);

    // Use an Italic font style beginning at the 28th character and continuing for 28 characters.
    formattedText.SetFontStyle(FontStyles.Italic, 28, 28);

    // Draw the formatted text string to the DrawingContext of the control.
    drawingContext.DrawText(formattedText, new Point(10, 0));
}
Protected Overrides Sub OnRender(ByVal drawingContext As DrawingContext)
    Dim testString As String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"

    ' Create the initial formatted text string.
    Dim formattedText As New FormattedText(testString, CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, New Typeface("Verdana"), 32, Brushes.Black)

    ' Set a maximum width and height. If the text overflows these values, an ellipsis "..." appears.
    formattedText.MaxTextWidth = 300
    formattedText.MaxTextHeight = 240

    ' Use a larger font size beginning at the first (zero-based) character and continuing for 5 characters.
    ' The font size is calculated in terms of points -- not as device-independent pixels.
    formattedText.SetFontSize(36 * (96.0 / 72.0), 0, 5)

    ' Use a Bold font weight beginning at the 6th character and continuing for 11 characters.
    formattedText.SetFontWeight(FontWeights.Bold, 6, 11)

    ' Use a linear gradient brush beginning at the 6th character and continuing for 11 characters.
    formattedText.SetForegroundBrush(New LinearGradientBrush(Colors.Orange, Colors.Teal, 90.0), 6, 11)

    ' Use an Italic font style beginning at the 28th character and continuing for 28 characters.
    formattedText.SetFontStyle(FontStyles.Italic, 28, 28)

    ' Draw the formatted text string to the DrawingContext of the control.
    drawingContext.DrawText(formattedText, New Point(10, 0))
End Sub

Комментарии

Объект FormattedText позволяет рисовать многострочный текст, в котором каждый символ в текст можно форматировать отдельно. В следующем примере показан текст, к которому применено несколько форматов.

Текст, отображаемый с помощью объекта FormattedText Пример форматируемой текстовой строки

С точки зрения возможностей текста в WPF считается "низкоуровневой", FormattedText так как обрабатывает текст как графические элементы. Другие аспекты текста в WPF обрабатывают текст в контексте элементов управления, выделенных для текста (TextBlock, ), TextBoxреализуют модель документа потока (см. статью Общие сведения о документе flow) или поддерживают модель документов XPS (см. статью Документы в WPF).

Многие методы задания в FormattedText имеют сходство с присоединенными свойствами, поддерживаемыми TextElement, но TextElement присоединенные свойства применяются к поддержке текста более высокого уровня для потока или XPS.

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

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush)
Устаревшие..

Инициализирует новый экземпляр класса FormattedText указанными текстом, языком и региональными параметрами, направлением потока, шрифтом, размером шрифта и кистью.

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush, Double)

Инициализирует новый экземпляр класса FormattedText с указанными текстом, языком и региональными параметрами, направлением потока, шрифтом, размером шрифта, кистью переднего плана и значением pixelsPerDip.

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush, NumberSubstitution)
Устаревшие..

Инициализирует новый экземпляр класса FormattedText указанными текстом, языком и региональными параметрами, направлением потока, шрифтом, размером шрифта, кистью и поведением подстановки чисел.

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush, NumberSubstitution, Double)

Инициализирует новый экземпляр класса FormattedText с указанными текстом, языком и региональными параметрами, направлением потока, шрифтом, размером шрифта, кистью переднего плана, поведением подстановки чисел и значением pixelsPerDip.

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush, NumberSubstitution, TextFormattingMode)
Устаревшие..

Инициализирует новый экземпляр класса FormattedText указанными текстом, языком и региональными параметрами, направлением потока, шрифтом, размером шрифта, кистью, поведением подстановки чисел и режимом форматирования текста.

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush, NumberSubstitution, TextFormattingMode, Double)

Инициализирует новый экземпляр класса FormattedText с указанными текстом, языком и региональными параметрами, направлением потока, шрифтом, размером шрифта, кистью переднего плана, поведением подстановки чисел и значением pixelsPerDip.

Свойства

Baseline

Получает расстояние от верха первой строки до базового плана первой строки объекта FormattedText.

Extent

Получает расстояние от самого верхнего рисуемого пикселя первой строки до самого нижнего рисуемого пикселя последней строки.

FlowDirection

Получает или задает FlowDirection объекта FormattedText.

Height

Получает расстояние от верха первой строки до низа последней строки объекта FormattedText.

LineHeight

Получает высоту строки, или расстояние между строками текста.

MaxLineCount

Получает или задает максимальное количество отображаемых строк. Текст, превышающий MaxLineCount, отображаться не будет.

MaxTextHeight

Получает или задает максимальную высоту столбца текста.

MaxTextWidth

Получает или задает максимальную ширину (длину) текста для строки текста.

MinWidth

Получает наименьшую возможную ширину текста, которая может полностью содержать заданное текстовое содержимое.

OverhangAfter

Получает расстояние от низа последней строки текста до самого нижнего рисуемого пикселя.

OverhangLeading

Получает максимальное расстояние от ведущей точки выравнивания до ведущего пикселя рисования строки.

OverhangTrailing

Получает максимальное расстояние от замыкающего пикселя рисования до замыкающей точки выравнивания строки.

PixelsPerDip

Возвращает или задает значение PixelsPerDip, при котором текст должен быть преобразован для просмотра.

Text

Получает строку текста для отображения.

TextAlignment

Получает или задает выравнивание текста в объекте FormattedText.

Trimming

Получает или задает способ индикации опущенного текста.

Width

Получает ширину между ведущей и замыкающей точками выравнивания в строке, исключая все ведущие пробелы.

WidthIncludingTrailingWhitespace

Получает ширину между ведущей и замыкающей точками выравнивания в строке, включая все ведущие пробелы.

Методы

BuildGeometry(Point)

Возвращает объект Geometry, представляющий форматированный текст, включая все глифы и оформление текста.

BuildHighlightGeometry(Point)

Возвращает объект Geometry, представляющий выделенный ограничивающий прямоугольник форматированного текста.

BuildHighlightGeometry(Point, Int32, Int32)

Возвращает объект Geometry, представляющий выделенный ограничивающий прямоугольник заданной подстроки форматированного текста.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

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

Служит хэш-функцией по умолчанию.

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

Извлекает массив значений ширины текста. Каждый элемент этого массива представляет максимальную ширину последовательных строк текста.

GetType()

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

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

Создает неполную копию текущего объекта Object.

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

Задает CultureInfo для всего набора символов в объекте FormattedText.

SetCulture(CultureInfo, Int32, Int32)

Задает CultureInfo для заданного подмножества символов в объекте FormattedText.

SetFontFamily(FontFamily)

Задает семейство шрифтов для объекта FormattedText.

SetFontFamily(FontFamily, Int32, Int32)

Задает семейство шрифтов для заданного подмножества символов в объекте FormattedText.

SetFontFamily(String)

Задает семейство шрифтов для всего набора символов в объекте FormattedText.

SetFontFamily(String, Int32, Int32)

Задает семейство шрифтов для заданного подмножества символов в объекте FormattedText.

SetFontSize(Double)

Задает размер шрифта для всего набора символов в объекте FormattedText.

SetFontSize(Double, Int32, Int32)

Задает размер шрифта для заданного подмножества символов в объекте FormattedText.

SetFontStretch(FontStretch)

Задает значение растяжения для всего набора символов в объекте FormattedText.

SetFontStretch(FontStretch, Int32, Int32)

Задает значение растяжения для заданного подмножества символов в объекте FormattedText.

SetFontStyle(FontStyle)

Задает стиль шрифта для всего набора символов в объекте FormattedText.

SetFontStyle(FontStyle, Int32, Int32)

Задает стиль шрифта для заданного подмножества символов в объекте FormattedText.

SetFontTypeface(Typeface)

Задает шрифт для всего набора символов в объекте FormattedText.

SetFontTypeface(Typeface, Int32, Int32)

Задает шрифт для заданного подмножества символов в объекте FormattedText.

SetFontWeight(FontWeight)

Задает плотность шрифта для всего набора символов в объекте FormattedText.

SetFontWeight(FontWeight, Int32, Int32)

Изменяет FontWeight для заданного текста в объекте FormattedText.

SetForegroundBrush(Brush)

Изменяет цвет текста Brush для всего объекта FormattedText.

SetForegroundBrush(Brush, Int32, Int32)

Изменяет Brush для рисования текста для заданного текста в объекте FormattedText.

SetMaxTextWidths(Double[])

Задает массив максимальных значений ширины текста в FormattedText, по одном значению на строку. Каждый элемент этого массива представляет максимальную ширину последовательных строк текста.

SetNumberSubstitution(NumberSubstitution)

Задает поведение подстановки для всего набора символов в объекте FormattedText.

SetNumberSubstitution(NumberSubstitution, Int32, Int32)

Задает поведение подстановки чисел для заданного текста в объекте FormattedText.

SetTextDecorations(TextDecorationCollection)

Задает TextDecorationCollection для всего набора символов в объекте FormattedText.

SetTextDecorations(TextDecorationCollection, Int32, Int32)

Задает TextDecorationCollection для заданного текста в объекте FormattedText.

ToString()

Возвращает строку, представляющую текущий объект.

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

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

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