TextPointer.IsInSameDocument(TextPointer) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определение, находится ли указанное положение в том же текстовом контейнере, что и текущее положение.
public:
bool IsInSameDocument(System::Windows::Documents::TextPointer ^ textPosition);
public bool IsInSameDocument (System.Windows.Documents.TextPointer textPosition);
member this.IsInSameDocument : System.Windows.Documents.TextPointer -> bool
Public Function IsInSameDocument (textPosition As TextPointer) As Boolean
Параметры
- textPosition
- TextPointer
TextPointer, который указывает положение для сравнения с текущим положением.
Возвращаемое значение
true
, если textPosition
указывает положение, которое располагается в том же текстовом контейнере, что и текущее положение; в противном случае — false
.
Исключения
textPosition
имеет значение null
.
Примеры
В следующем примере показано использование этого метода. В примере используется IsInSameDocument метод для проверки расположения указанного TextPointer экземпляра между двумя другими указанными TextPointer экземплярами в ситуации, когда нет никакой гарантии, что все три позиции принадлежат одному текстовому контейнеру.
// This method first checks for compatible text container scope, and then checks whether
// a specified position is between two other specified positions.
bool IsPositionContainedBetween(TextPointer positionToTest, TextPointer start, TextPointer end)
{
// Note that without this check, an exception will be raised by CompareTo if positionToTest
// does not point to a position that is in the same text container used by start and end.
//
// This test also implicitely indicates whether start and end share a common text container.
if (!positionToTest.IsInSameDocument(start) || !positionToTest.IsInSameDocument(end))
return false;
return start.CompareTo(positionToTest) <= 0 && positionToTest.CompareTo(end) <= 0;
}
' This method first checks for compatible text container scope, and then checks whether
' a specified position is between two other specified positions.
Private Function IsPositionContainedBetween(ByVal positionToTest As TextPointer, ByVal start As TextPointer, ByVal [end] As TextPointer) As Boolean
' Note that without this check, an exception will be raised by CompareTo if positionToTest
' does not point to a position that is in the same text container used by start and end.
'
' This test also implicitely indicates whether start and end share a common text container.
If (Not positionToTest.IsInSameDocument(start)) OrElse (Not positionToTest.IsInSameDocument([end])) Then
Return False
End If
Return start.CompareTo(positionToTest) <= 0 AndAlso positionToTest.CompareTo([end]) <= 0
End Function
Комментарии
Большинство операций, включающих несколько TextPointer экземпляров, допустимы только в том случае, если экземпляры, которые находятся в вопросе, указывают позиции, которые находятся в одной области текстового контейнера. Например, CompareTo GetOffsetToPosition методы нельзя использовать с TextPointer позицией вне текстового контейнера, связанного с текущей позицией. Используйте этот метод, чтобы проверить, совместим ли указанный TextPointer объект с текущей позицией для таких операций.