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 中文本的其他方面处理专用于文本 (TextBlockTextBox) 的控件上下文中的文本、实现流文档模型 (请参阅 流文档概述) ,或支持 XPS 文档模型 (请参阅 WPF) 中的文档

中的 FormattedText 许多 setter 方法与 支持的附加属性 TextElement具有相似之处,但 TextElement 附加属性适用于流或 XPS 的更高级别的文本支持。

构造函数

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush)
已过时.

使用指定的文本、区域性、流方向、字体、字体大小和画笔初始化 FormattedText 类新实例。

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

使用指定的文本、区域性、流方向、字体、字体大小、前景画笔和 pixelsPerDip 值初始化 FormattedText 类新实例。

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush, NumberSubstitution)
已过时.

使用指定的文本、区域性、流方向、字体、字号、画笔和数字替换行为初始化 FormattedText 类的一个新实例。

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

使用指定的文本、区域性、流方向、字样、字体大小、前景画笔、数字替换行为和 pixelsPerDip 值初始化 FormattedText 类的新实例。

FormattedText(String, CultureInfo, FlowDirection, Typeface, Double, Brush, NumberSubstitution, TextFormattingMode)
已过时.

使用指定的文本、区域性、流方向、字体、字号、画笔、数字替换行为以及文本格式设置模式初始化 FormattedText 类的新实例。

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

使用指定的文本、区域性、流方向、字样、字体大小、前景画笔、数字替换行为和 pixelsPerDip 值初始化 FormattedText 类的新实例。

属性

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)

适用于

另请参阅