TextPointer.GetNextInsertionPosition(LogicalDirection) Метод

Определение

Возвращение TextPointer к следующему положению вставки в указанном логическом направлении.Returns a TextPointer to the next insertion position in the specified logical direction.

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

Параметры

direction
LogicalDirection

Одно из значений LogicalDirection, которое указывает логическое направление, в котором осуществляется поиск следующего положения вставки.One of the LogicalDirection values that specifies the logical direction in which to search for the next insertion position.

Возвраты

TextPointer, который определяет следующее положение вставки в запрошенном направлении или null, если невозможно найти следующее положение вставки.A TextPointer that identifies the next insertion position in the requested direction, or null if no next insertion position can be found.

Примеры

В следующем примере демонстрируется использование этого метода.The following example demonstrates a use for this method. В примере используется GetNextInsertionPosition метод для прохода по границам элементов содержимого для подсчета Paragraph количества элементов, существующих между двумя указанными TextPointer экземплярами.The example uses the GetNextInsertionPosition method to traverse content element boundaries in order to count the number of Paragraph elements present between two specified TextPointer instances.

// This method returns the number of pagragraphs between two
// specified TextPointers.
int GetParagraphCount(TextPointer start, TextPointer end)
{
    int paragraphCount = 0;
 
    while (start != null && start.CompareTo(end) < 0)
    {
        Paragraph paragraph = start.Paragraph;
 
        if (paragraph != null)
        {
            paragraphCount++;
 
            // Advance start to the end of the current paragraph.
            start = paragraph.ContentEnd;
         }
 
         // Use the GetNextInsertionPosition method to skip over any interceding
         // content element tags.
         start = start.GetNextInsertionPosition(LogicalDirection.Forward);

     } // End while.
 
         return paragraphCount;
 
}  // End GetParagraphCount.
' This method returns the number of pagragraphs between two
' specified TextPointers.
Private Function GetParagraphCount(ByVal start As TextPointer, ByVal [end] As TextPointer) As Integer
    Dim paragraphCount As Integer = 0

    Do While start IsNot Nothing AndAlso start.CompareTo([end]) < 0
        Dim paragraph As Paragraph = start.Paragraph

        If paragraph IsNot Nothing Then
            paragraphCount += 1

            ' Advance start to the end of the current paragraph.
            start = paragraph.ContentEnd
        End If

        ' Use the GetNextInsertionPosition method to skip over any interceding
        ' content element tags.
        start = start.GetNextInsertionPosition(LogicalDirection.Forward)

    Loop ' End while.

    Return paragraphCount

End Function ' End GetParagraphCount.

Комментарии

Позиция вставки — это позиция, в которую можно добавить новое содержимое без нарушения семантических правил для связанного содержимого.An insertion position is a position where new content may be added without breaking any semantic rules for the associated content. На практике позиция вставки находится в любом месте содержимого, где может быть размещен курсор.In practice, an insertion position is anywhere in content where a caret may be positioned. Примером допустимой TextPointer позиции, которая не является позицией вставки, является положение между двумя соседними Paragraph тегами (то есть между закрывающим тегом предыдущего абзаца и открывающим тегом следующего абзаца).An example of a valid TextPointer position that is not an insertion position is the position between two adjacent Paragraph tags (that is, between the closing tag of the preceding paragraph and the opening tag of the next paragraph).

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

Дополнительно