Share via


TextSource.GetTextRun(Int32) 方法

定義

擷取從指定 TextRun 位置開始的 TextSource

public:
 abstract System::Windows::Media::TextFormatting::TextRun ^ GetTextRun(int textSourceCharacterIndex);
public abstract System.Windows.Media.TextFormatting.TextRun GetTextRun (int textSourceCharacterIndex);
abstract member GetTextRun : int -> System.Windows.Media.TextFormatting.TextRun
Public MustOverride Function GetTextRun (textSourceCharacterIndex As Integer) As TextRun

參數

textSourceCharacterIndex
Int32

表示要從 TextSource 中擷取 TextRun 的字元索引位置。

傳回

TextRun

表示 TextRun 的值,或從 TextRun 衍生的物件。

範例

在下列範例中,會實作 方法的 GetTextRun 覆寫。

// Retrieve the next formatted text run for the text source.
public override TextRun GetTextRun(int textSourceCharacterIndex)
{
    // Determine whether the text source index is in bounds.
    if (textSourceCharacterIndex < 0)
    {
        throw new ArgumentOutOfRangeException("textSourceCharacterIndex", "Value must be greater than 0.");
    }

    // Determine whether the text source index has exceeded or equaled the text source length.
    if (textSourceCharacterIndex >= _text.Length)
    {
        // Return an end-of-paragraph indicator -- a TextEndOfParagraph object is a special type of text run.
        return new TextEndOfParagraph(1);
    }

    // Create and return a TextCharacters object, which is formatted according to
    // the current layout and rendering properties.
    if (textSourceCharacterIndex < _text.Length)
    {
        // The TextCharacters object is a special type of text run that contains formatted text.
        return new TextCharacters(
           _text,                                       // The text store
           textSourceCharacterIndex,                    // The text store index
           _text.Length - textSourceCharacterIndex,     // The text store length
           new CustomTextRunProperties());              // The layout and rendering properties
    }

    // Return an end-of-paragraph indicator if there is no more text source.
    return new TextEndOfParagraph(1);
}
' Retrieve the next formatted text run for the text source.
Public Overrides Function GetTextRun(ByVal textSourceCharacterIndex As Integer) As TextRun
    ' Determine whether the text source index is in bounds.
    If textSourceCharacterIndex < 0 Then
        Throw New ArgumentOutOfRangeException("textSourceCharacterIndex", "Value must be greater than 0.")
    End If

    ' Determine whether the text source index has exceeded or equaled the text source length.
    If textSourceCharacterIndex >= _text.Length Then
        ' Return an end-of-paragraph indicator -- a TextEndOfParagraph object is a special type of text run.
        Return New TextEndOfParagraph(1)
    End If

    ' Create and return a TextCharacters object, which is formatted according to
    ' the current layout and rendering properties.
    If textSourceCharacterIndex < _text.Length Then
        ' The TextCharacters object is a special type of text run that contains formatted text.
        Return New TextCharacters(_text, textSourceCharacterIndex, _text.Length - textSourceCharacterIndex, New CustomTextRunProperties()) ' The layout and rendering properties -  The text store length -  The text store index -  The text store
    End If

    ' Return an end-of-paragraph indicator if there is no more text source.
    Return New TextEndOfParagraph(1)
End Function

備註

文字執行是共用單一屬性集的字元序列。 任何對格式的變更,例如字型系列、字型樣式、前景色彩、文字裝飾或任何其他格式效果,都會中斷文字執行。 類別 TextRun 是類型階層的根目錄,代表 所 TextFormatter 處理的數種文字內容類型。 衍生自 TextRun 的每個類別都代表不同類型的文字內容。

執行個體 說明
TextRun 階層的根目錄。 定義共用相同字元屬性集的字元群組。
TextCharacters 定義來自不同實體字樣之字元字元的集合。
TextEmbeddedObject 定義一種文字內容類型,其中測量、點擊測試及繪製整個內容會做為不同的實體。 這種類型的內容範例是文字行中間的按鈕。
TextEndOfLine 定義分行符號代碼。
TextEndOfParagraph 定義段落分隔字元代碼。 衍生自 TextEndOfLine
TextEndOfSegment 定義區段中斷標記。
TextHidden 定義非可見字元的範圍。
TextModifier 定義修改範圍的開頭。

適用於