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


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

-или-

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

Комментарии

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

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

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