TextPointer.GetNextInsertionPosition(LogicalDirection) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает следующую TextPointer позицию вставки в указанном логическом направлении.
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 значений, указывающее логическое направление, в котором выполняется поиск следующей позиции вставки.
Возвращаемое значение
Значение TextPointer , определяющее следующую позицию вставки в запрошенном направлении или null если не найдено следующей позиции вставки.
Примеры
В следующем примере демонстрируется использование этого метода. В этом примере метод используется GetNextInsertionPosition для обхода границ элементов содержимого для подсчета Paragraph количества элементов, присутствующих между двумя указанными TextPointer экземплярами.
// 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.
Комментарии
Позиция вставки — это позиция, в которой новое содержимое может быть добавлено без нарушения каких-либо семантических правил для связанного содержимого. На практике позиция вставки находится в любом месте содержимого, где может находиться курсор. Пример допустимой TextPointer позиции, которая не является позицией вставки, — позиция между двумя смежными Paragraph тегами (то есть между закрывающим тегом предыдущего абзаца и открывающим тегом следующего абзаца).