TextPointer.GetPointerContext(LogicalDirection) Метод

Определение

Возвращение индикатора категории для содержимого, примыкающего к текущему TextPointer в указанном логическом направлении.Returns a category indicator for the content adjacent to the current TextPointer in the specified logical direction.

public:
 System::Windows::Documents::TextPointerContext GetPointerContext(System::Windows::Documents::LogicalDirection direction);
public System.Windows.Documents.TextPointerContext GetPointerContext (System.Windows.Documents.LogicalDirection direction);
member this.GetPointerContext : System.Windows.Documents.LogicalDirection -> System.Windows.Documents.TextPointerContext
Public Function GetPointerContext (direction As LogicalDirection) As TextPointerContext

Параметры

direction
LogicalDirection

Одно из значений LogicalDirection, которое указывает логическое направление, в котором необходимо определить категорию примыкающего содержимого.One of the LogicalDirection values that specifies the logical direction in which to determine the category for adjacent content.

Возвращаемое значение

Одно из значений TextPointerContext, которое определяет категорию примыкающего содержимого в указанном логическом направлении.One of the TextPointerContext values that indicates the category for adjacent content in the specified logical direction.

Реализации

System.Windows.Documents.ITextPointer.GetPointerContext(System.Windows.Documents.LogicalDirection)

Примеры

В следующем примере демонстрируется использование этого метода.The following example demonstrates a use for this method. В примере GetPointerContext метод используется для реализации алгоритма для вычисления баланса между открывающим и закрывающим тегами элемента между двумя заданными TextPointer позициями.The example uses the GetPointerContext method to implement an algorithm for calculating the balance of opening and closing element tags between two specified TextPointer positions. Каждый открывающий тег элемента считается + 1, а каждый закрывающий тег элемента считается-1.Each opening element tag is counted as +1, and each closing element tag is counted as -1.

// Calculate and return the relative balance of opening and closing element tags
// between two specified TextPointers.
int GetElementTagBalance(TextPointer start, TextPointer end)
{
    int balance = 0;
 
    while (start != null && start.CompareTo(end) < 0)
    {
        TextPointerContext forwardContext = start.GetPointerContext(LogicalDirection.Forward);
 
        if (forwardContext == TextPointerContext.ElementStart)     balance++;
        else if (forwardContext == TextPointerContext.ElementEnd)  balance--;
             
        start = start.GetNextContextPosition(LogicalDirection.Forward);
    } // End while.
 
    return balance;
} // End GetElementTagBalance
' Calculate and return the relative balance of opening and closing element tags
' between two specified TextPointers.
Private Function GetElementTagBalance(ByVal start As TextPointer, ByVal [end] As TextPointer) As Integer
    Dim balance As Integer = 0

    Do While start IsNot Nothing AndAlso start.CompareTo([end]) < 0
        Dim forwardContext As TextPointerContext = start.GetPointerContext(LogicalDirection.Forward)

        If forwardContext = TextPointerContext.ElementStart Then
            balance += 1
        ElseIf forwardContext = TextPointerContext.ElementEnd Then
            balance -= 1
        End If

        start = start.GetNextContextPosition(LogicalDirection.Forward)

    Loop ' End while.

    Return balance

End Function ' End GetElementTagBalance

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