Condividi tramite


TextPointer.GetTextInRun Metodo

Definizione

Restituisce il testo adiacente all'oggetto TextPointer corrente.

Overload

GetTextInRun(LogicalDirection)

Restituisce una stringa contenente il testo adiacente all'oggetto TextPointer corrente nella direzione logica specificata.

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

Copia il numero di caratteri massimo specificato da un testo adiacente nella direzione specificata in una matrice di caratteri fornita dal chiamante.

GetTextInRun(LogicalDirection)

Restituisce una stringa contenente il testo adiacente all'oggetto TextPointer corrente nella direzione logica specificata.

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

Parametri

direction
LogicalDirection

Uno dei valori LogicalDirection che specifica la direzione logica nella quale cercare e restituire il testo adiacente.

Restituisce

Stringa contenente il testo adiacente nella direzione logica specificata, oppure Empty se risulta impossibile trovare un testo adiacente.

Esempio

Nell'esempio seguente viene illustrato un utilizzo per questo metodo. Nell'esempio viene utilizzato il GetTextInRun metodo per implementare un semplice estrattore di testo. Il metodo restituisce una concatenazione di stringa di tutto il testo tra due istanze specificate TextPointer .

Anche se l'esempio può essere usato per estrarre testo tra due TextPointer istanze, è destinato solo a scopi illustrativi e non deve essere usato nel codice di produzione. Utilizzare in alternativa la proprietà 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.

Commenti

Questo metodo restituisce solo esecuzioni di testo ininterrotte. Non viene restituito alcun valore se un tipo di simbolo diverso Text da è adiacente all'oggetto corrente TextPointer nella direzione specificata. Analogamente, il testo viene restituito solo fino al simbolo non di testo successivo.

Vedi anche

Si applica a

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

Copia il numero di caratteri massimo specificato da un testo adiacente nella direzione specificata in una matrice di caratteri fornita dal chiamante.

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

Parametri

direction
LogicalDirection

Uno dei valori LogicalDirection che specifica la direzione logica nella quale cercare e copiare il testo adiacente.

textBuffer
Char[]

Buffer nel quale viene copiato il testo.

startIndex
Int32

Indice in textBuffer nel quale iniziare a scrivere il testo copiato.

count
Int32

Numero massimo di caratteri da copiare.

Restituisce

Numero di caratteri realmente copiati in textBuffer.

Eccezioni

startIndex è inferiore a 0 o superiore alla proprietà Length di textBuffer.

-oppure-

count è minore di 0 o maggiore dello spazio rimanente in textBuffer (textBuffer.Length meno startIndex).

Commenti

Questo metodo restituisce solo esecuzioni di testo ininterrotte. Non viene restituito alcun valore se un tipo di simbolo diverso Text da è adiacente all'oggetto corrente TextPointer nella direzione specificata. Analogamente, il testo viene restituito solo fino al simbolo non di testo successivo.

Vedi anche

Si applica a