次の方法で共有


TextPointer.GetNextContextPosition(LogicalDirection) メソッド

定義

指定された論理方向の次のシンボルへのポインターを返します。

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

パラメーター

direction
LogicalDirection

次のシンボルを検索する論理方向を指定する LogicalDirection 値のいずれか。

戻り値

指定した方向の次のシンボルへの TextPointer。現在の TextPointer がコンテンツの先頭または末尾に隣接している場合は null

次の例では、このメソッドの使用方法を示します。 この例では、 GetNextContextPosition メソッドと メソッドを GetPointerContext 組み合わせて使用して、指定した TextElement内のシンボルを走査および抽出します。

この例を使用して、指定された TextElementの内容の XAML 構造体を抽出できますが、これは例示のみを目的としており、運用コードでは使用しないでください。 XML の System.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.

注釈

次のいずれかがシンボルと見なされます。

  • 要素の開始タグまたは終了タグ TextElement

  • UIElementまたは BlockUIContainerInlineUIContainer含まれる要素。 このような は UIElement 常に 1 つのシンボルとしてカウントされます。に含まれる UIElement 追加のコンテンツまたは要素はシンボルとしてカウントされません。

  • テキスト Run 要素内の 16 ビット Unicode 文字。

次のシンボルが 、、ElementStartまたは (メソッドで識別される) TextPointer としてEmbeddedElement分類されている場合、このメソッドによってGetPointerContext返される は、現在の位置から 1 つのシンボルによって厳密に拡張ElementEndされます。

次の記号が としてTextTextPointer分類されている場合、このメソッドによって返される は、テキストの後の次の非テキスト 記号 (つまり、 が ではないText次の位置TextPointerContext) に進みます。 交差する正確なシンボル数は、 メソッドを呼び出すことによって事前に GetTextRunLength 計算できます。

適用対象