TextPointer.GetNextContextPosition(LogicalDirection) Metodo

Definizione

Restituisce un puntatore al simbolo successivo nella direzione logica specificata.Returns a pointer to the next symbol in the specified logical direction.

public:
 System::Windows::Documents::TextPointer ^ GetNextContextPosition(System::Windows::Documents::LogicalDirection direction);
public System.Windows.Documents.TextPointer GetNextContextPosition (System.Windows.Documents.LogicalDirection direction);
member this.GetNextContextPosition : System.Windows.Documents.LogicalDirection -> System.Windows.Documents.TextPointer
Public Function GetNextContextPosition (direction As LogicalDirection) As TextPointer

Parametri

direction
LogicalDirection

Uno dei valori LogicalDirection che specifica la direzione logica nella quale cercare il simbolo successivo.One of the LogicalDirection values that specifies the logical direction in which to search for the next symbol.

Restituisce

Oggetto TextPointer al simbolo successivo nella direzione richiesta, oppure null se l'oggetto TextPointer corrente delimita l'inizio o la fine del contenuto.A TextPointer to the next symbol in the requested direction, or null if the current TextPointer borders the start or end of content.

Esempi

Nell'esempio seguente viene illustrato l'utilizzo di questo metodo.The following example demonstrates a use for this method. Nell'esempio viene usato GetNextContextPosition il metodo insieme GetPointerContext al metodo per attraversare ed estrarre i simboli in un oggetto specificato TextElement.The example uses the GetNextContextPosition method in conjunction with the GetPointerContext method to traverse and extract the symbols in a specified TextElement.

Sebbene l'esempio possa essere utilizzato per estrarre una XAMLXAML struttura per il contenuto di un determinato TextElementoggetto, è destinato esclusivamente a scopi illustrativi e non deve essere utilizzato nel codice di produzione.While the example can be used to extract a XAMLXAML structure for the contents of a given TextElement, it is intended for illustrative purposes only, and should not be used in production code. Vedere lo System.Xml spazio dei nomi per un set completo di tipi progettati per l'utilizzo e l'elaborazione di XML.See the System.Xml namespace for a rich set of types designed for working with and processing XML.

// This method will extract and return a string that contains a representation of 
// the XAML structure of content elements in a given TextElement.        
string GetXaml(TextElement element)
{
    StringBuilder buffer = new StringBuilder();
 
    // Position a "navigator" pointer before the opening tag of the element.
    TextPointer navigator = element.ElementStart;

    while (navigator.CompareTo(element.ElementEnd) < 0)
    {
        switch (navigator.GetPointerContext(LogicalDirection.Forward))
        {
            case TextPointerContext.ElementStart : 
                // Output opening tag of a TextElement
                buffer.AppendFormat("<{0}>", navigator.GetAdjacentElement(LogicalDirection.Forward).GetType().Name);
                break;
            case TextPointerContext.ElementEnd :
                // Output closing tag of a TextElement
                buffer.AppendFormat("</{0}>", navigator.GetAdjacentElement(LogicalDirection.Forward).GetType().Name);
                break;
            case TextPointerContext.EmbeddedElement :
                // Output simple tag for embedded element
                buffer.AppendFormat("<{0}/>", navigator.GetAdjacentElement(LogicalDirection.Forward).GetType().Name);
                break;
            case TextPointerContext.Text :
                // Output the text content of this text run
                buffer.Append(navigator.GetTextInRun(LogicalDirection.Forward));
                break;
        }
 
        // Advance the naviagtor to the next context position.
        navigator = navigator.GetNextContextPosition(LogicalDirection.Forward);
    
    } // End while.

    return buffer.ToString();

} // End GetXaml method.
' This method will extract and return a string that contains a representation of 
' the XAML structure of content elements in a given TextElement.        
Private Function GetXaml_Renamed(ByVal element As TextElement) As String
    Dim buffer As New StringBuilder()

    ' Position a "navigator" pointer before the opening tag of the element.
    Dim navigator As TextPointer = element.ElementStart

    Do While navigator.CompareTo(element.ElementEnd) < 0
        Select Case navigator.GetPointerContext(LogicalDirection.Forward)
            Case TextPointerContext.ElementStart
                ' Output opening tag of a TextElement
                buffer.AppendFormat("<{0}>", navigator.GetAdjacentElement(LogicalDirection.Forward).GetType().Name)
            Case TextPointerContext.ElementEnd
                ' Output closing tag of a TextElement
                buffer.AppendFormat("</{0}>", navigator.GetAdjacentElement(LogicalDirection.Forward).GetType().Name)
            Case TextPointerContext.EmbeddedElement
                ' Output simple tag for embedded element
                buffer.AppendFormat("<{0}/>", navigator.GetAdjacentElement(LogicalDirection.Forward).GetType().Name)
            Case TextPointerContext.Text
                ' Output the text content of this text run
                buffer.Append(navigator.GetTextInRun(LogicalDirection.Forward))
        End Select

        ' Advance the naviagtor to the next context position.
        navigator = navigator.GetNextContextPosition(LogicalDirection.Forward)

    Loop ' End while.

    Return buffer.ToString()

End Function ' End GetXaml method.

Commenti

Uno dei seguenti è considerato un simbolo:Any of the following is considered to be a symbol:

  • Tag di apertura o di chiusura per TextElement un elemento.An opening or closing tag for a TextElement element.

  • Elemento contenuto in un oggetto InlineUIContainer o BlockUIContainer. UIElementA UIElement element contained in an InlineUIContainer or BlockUIContainer. Si noti che tale UIElement valore viene sempre conteggiato come un solo simbolo; eventuali elementi o contenuti aggiuntivi contenuti UIElement in non vengono conteggiati come simboli.Note that such a UIElement is always counted as exactly one symbol; any additional content or elements contained by the UIElement are not counted as symbols.

  • Carattere a 16 bit UnicodeUnicode all'interno di un elemento Run di testo.A 16-bit UnicodeUnicode character inside of a text Run element.

Se il simbolo successivo è stato categorizzato EmbeddedElementcome ElementStart, o ElementEnd (come identificato dal GetPointerContext metodo), l'oggetto TextPointer restituito da questo metodo viene avanzato esattamente da un simbolo della posizione corrente.If the next symbol is categorized as EmbeddedElement, ElementStart, or ElementEnd (as identified by the GetPointerContext method), then the TextPointer returned by this method is advanced by exactly one symbol from the current position.

Se il simbolo successivo è categorizzato come Text, l'oggetto TextPointer restituito da questo metodo viene avanzato oltre il testo al simbolo non di testo successivo (ovvero TextPointerContext la posizione successiva in cui non Textè).If the next symbol is categorized as Text, then the TextPointer returned by this method is advanced past the text to the next non-text symbol (that is, the next position where the TextPointerContext is not Text). Il numero esatto di simboli incrociati può essere calcolato in anticipo GetTextRunLength chiamando il metodo.The exact symbol count crossed can be calculated in advance by calling the GetTextRunLength method.

Si applica a