TextPointer.GetTextInRun 方法

定义

返回与当前 TextPointer 相邻的文本。

重载

GetTextInRun(LogicalDirection)

返回一个字符串,其中包含在指定逻辑方向上与当前 TextPointer 相邻的任何文本。

GetTextInRun(LogicalDirection, Char[], Int32, Int32)

将从指定方向上的任何相邻文本中提取的指定了最大数量的字符复制到由调用方提供的字符数组中。

GetTextInRun(LogicalDirection)

返回一个字符串,其中包含在指定逻辑方向上与当前 TextPointer 相邻的任何文本。

public:
 System::String ^ GetTextInRun(System::Windows::Documents::LogicalDirection direction);
public string GetTextInRun (System.Windows.Documents.LogicalDirection direction);
member this.GetTextInRun : System.Windows.Documents.LogicalDirection -> string
Public Function GetTextInRun (direction As LogicalDirection) As String

参数

direction
LogicalDirection

LogicalDirection 值之一,它指定查找并返回任何相邻文本时的逻辑方向。

返回

一个包含指定逻辑方向上的任何相邻文本的字符串;或者,如果找不到相邻文本,则为 Empty

示例

以下示例演示了此方法的用法。 该示例使用 GetTextInRun 方法实现简单的文本提取程序。 方法返回两个指定 TextPointer 实例之间所有文本的字符串串联。

虽然该示例可用于提取两个 TextPointer 实例之间的任何文本,但它仅用于说明目的,不应在生产代码中使用。 改用 TextRange.Text 属性。

// Returns a string containing the text content between two specified TextPointers.
string GetTextBetweenTextPointers(TextPointer start, TextPointer end)
{
    StringBuilder buffer = new StringBuilder();
 
    while (start != null && start.CompareTo(end) < 0)
    {
        if (start.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text)
            buffer.Append(start.GetTextInRun(LogicalDirection.Forward));
 
        // Note that when the TextPointer points into a text run, this skips over the entire
        // run, not just the current character in the run.
        start = start.GetNextContextPosition(LogicalDirection.Forward);
    }
    return buffer.ToString();
} // End GetTextBetweenPointers.
' Returns a string containing the text content between two specified TextPointers.
Private Function GetTextBetweenTextPointers(ByVal start As TextPointer, ByVal [end] As TextPointer) As String
    Dim buffer As New StringBuilder()

    Do While start IsNot Nothing AndAlso start.CompareTo([end]) < 0
        If start.GetPointerContext(LogicalDirection.Forward) = TextPointerContext.Text Then
            buffer.Append(start.GetTextInRun(LogicalDirection.Forward))
        End If

        ' Note that when the TextPointer points into a text run, this skips over the entire
        ' run, not just the current character in the run.
        start = start.GetNextContextPosition(LogicalDirection.Forward)
    Loop
    Return buffer.ToString()

End Function ' End GetTextBetweenPointers.

注解

此方法仅返回连续运行的文本。 如果除 Text 其他任何符号类型在指定方向上与当前 TextPointer 相邻,则不返回任何内容。 同样,仅返回下一个非文本符号的文本。

另请参阅

适用于

GetTextInRun(LogicalDirection, Char[], Int32, Int32)

将从指定方向上的任何相邻文本中提取的指定了最大数量的字符复制到由调用方提供的字符数组中。

public:
 int GetTextInRun(System::Windows::Documents::LogicalDirection direction, cli::array <char> ^ textBuffer, int startIndex, int count);
public int GetTextInRun (System.Windows.Documents.LogicalDirection direction, char[] textBuffer, int startIndex, int count);
member this.GetTextInRun : System.Windows.Documents.LogicalDirection * char[] * int * int -> int
Public Function GetTextInRun (direction As LogicalDirection, textBuffer As Char(), startIndex As Integer, count As Integer) As Integer

参数

direction
LogicalDirection

LogicalDirection 值之一,它指定查找并复制任何相邻文本时的逻辑方向。

textBuffer
Char[]

要向其中复制文本的缓冲区。

startIndex
Int32

一个索引,从该索引处开始将复制的文本写入 textBuffer 中。

count
Int32

要复制的最大字符数。

返回

实际复制到 textBuffer 中的字符数。

例外

startIndex 小于 0 或大于 textBufferLength 属性。

- 或 -

count小于 0 或大于 (textBuffer中的textBuffer剩余空间。Length减去 startIndex) 。

注解

此方法仅返回连续运行的文本。 如果除 Text 其他任何符号类型在指定方向上与当前 TextPointer 相邻,则不返回任何内容。 同样,仅返回下一个非文本符号的文本。

另请参阅

适用于