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


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 или больше свойства LengthtextBuffer.

-или-

count меньше 0 или больше оставшегося пространства в textBuffer (textBuffer.Length минус startIndex).

Комментарии

Этот метод возвращает только непрерывные запуски текста. Ничего не возвращается, если любой тип символа, отличный от Text, находится рядом с текущим TextPointer в указанном направлении. Аналогичным образом текст возвращается только до следующего нетекстового символа.

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

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