Freigeben über


TextPointer.GetTextInRun Methode

Definition

Gibt den Text zurück, der sich neben dem aktuellen TextPointer befindet.

Überlädt

GetTextInRun(LogicalDirection)

Gibt eine Zeichenfolge zurück, die Text enthält, der sich in der angegebenen logischen Richtung neben dem aktuellen TextPointer befindet.

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

Kopiert die angegebene maximale Anzahl von Zeichen aus benachbartem Text in der angegebenen Richtung in ein vom Aufrufer bereitgestelltes Zeichenarray.

GetTextInRun(LogicalDirection)

Gibt eine Zeichenfolge zurück, die Text enthält, der sich in der angegebenen logischen Richtung neben dem aktuellen TextPointer befindet.

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

Parameter

direction
LogicalDirection

Einer der LogicalDirection-Werte, mit denen die logische Richtung angegeben wird, in der benachbarter Text gesucht und zurückgegeben werden soll.

Gibt zurück

Eine Zeichenfolge, die beliebigen benachbarten Text in der angegebenen logischen Richtung enthält, oder Empty, wenn kein benachbarter Text gefunden werden kann.

Beispiele

Im folgenden Beispiel wird eine Verwendung für diese Methode veranschaulicht. Im Beispiel wird die GetTextInRun -Methode verwendet, um einen einfachen Textextraktor zu implementieren. Die -Methode gibt eine Zeichenfolgenverkettung des gesamten Texts zwischen zwei angegebenen TextPointer Instanzen zurück.

Das Beispiel kann zwar zum Extrahieren von Text zwischen zwei TextPointer Instanzen verwendet werden, dient jedoch nur zur Veranschaulichung und sollte nicht im Produktionscode verwendet werden. Verwenden Sie stattdessen die TextRange.Text-Eigenschaft.

// 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.

Hinweise

Diese Methode gibt nur ununterbrochene Textausführungen zurück. Es wird nichts zurückgegeben, wenn ein anderer Symboltyp als Text in der angegebenen Richtung neben dem aktuellen TextPointer steht. Ebenso wird Text nur bis zum nächsten Nicht-Text-Symbol zurückgegeben.

Weitere Informationen

Gilt für:

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

Kopiert die angegebene maximale Anzahl von Zeichen aus benachbartem Text in der angegebenen Richtung in ein vom Aufrufer bereitgestelltes Zeichenarray.

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

Parameter

direction
LogicalDirection

Einer der LogicalDirection-Werte, mit denen die logische Richtung angegeben wird, in der benachbarter Text gesucht und kopiert werden soll.

textBuffer
Char[]

Ein Puffer, in den beliebiger Text kopiert wird.

startIndex
Int32

Ein Index im textBuffer, ab dem mit dem Schreiben von kopiertem Text begonnen wird.

count
Int32

Die maximale Anzahl der zu kopierenden Zeichen.

Gibt zurück

Die Anzahl der tatsächlich in den textBuffer kopierten Zeichen.

Ausnahmen

startIndex ist kleiner als 0 oder größer als die Length-Eigenschaft von textBuffer.

- oder -

count ist kleiner als 0 oder größer als der verbleibende Platz in textBuffer (textBuffer.Length minus startIndex).

Hinweise

Diese Methode gibt nur ununterbrochene Textausführungen zurück. Es wird nichts zurückgegeben, wenn ein anderer Symboltyp als Text in der angegebenen Richtung neben dem aktuellen TextPointer steht. Ebenso wird Text nur bis zum nächsten Nicht-Text-Symbol zurückgegeben.

Weitere Informationen

Gilt für: