TextPointer.GetPositionAtOffset Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращение TextPointer в положение, указанное заданным смещением в символах от начала содержимого.
Перегрузки
GetPositionAtOffset(Int32, LogicalDirection) |
Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer, а также в указанном направлении. |
GetPositionAtOffset(Int32) |
Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer. |
GetPositionAtOffset(Int32, LogicalDirection)
Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer, а также в указанном направлении.
public:
System::Windows::Documents::TextPointer ^ GetPositionAtOffset(int offset, System::Windows::Documents::LogicalDirection direction);
public System.Windows.Documents.TextPointer GetPositionAtOffset (int offset, System.Windows.Documents.LogicalDirection direction);
member this.GetPositionAtOffset : int * System.Windows.Documents.LogicalDirection -> System.Windows.Documents.TextPointer
Public Function GetPositionAtOffset (offset As Integer, direction As LogicalDirection) As TextPointer
Параметры
- offset
- Int32
Смещение (в символах) на которое необходимо рассчитывать и возвращать положение. Если смешение отрицательное, возвращенный TextPointer предшествует текущему TextPointer; в противном случае, он идет следом.
- direction
- LogicalDirection
Одно из значений LogicalDirection, которое указывает логическое направление возвращенного TextPointer.
Возвращаемое значение
Указатель TextPointer на положение, определяемое заданным смещением, или null
, если смещение выходит за рамки содержимого.
Комментарии
Символом считается любое из следующих элементов:
Открывающий или закрывающий тег для TextElement элемента.
Элемент UIElement , содержащийся в InlineUIContainer или BlockUIContainer. Обратите внимание, что такой UIElement объект всегда считается ровно одним символом; любое дополнительное содержимое или элементы, содержащиеся в UIElement , не учитываются как символы.
16-разрядный символ Юникода внутри текстового Run элемента.
См. также раздел
Применяется к
GetPositionAtOffset(Int32)
Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer.
public:
System::Windows::Documents::TextPointer ^ GetPositionAtOffset(int offset);
public System.Windows.Documents.TextPointer GetPositionAtOffset (int offset);
member this.GetPositionAtOffset : int -> System.Windows.Documents.TextPointer
Public Function GetPositionAtOffset (offset As Integer) As TextPointer
Параметры
- offset
- Int32
Смещение (в символах) на которое необходимо рассчитывать и возвращать положение. Если смещение отрицательное, положение рассчитывается в логическом направлении, противоположном заданному свойством LogicalDirection.
Возвращаемое значение
Указатель TextPointer на положение, определенное заданным смещением, или null
, если невозможно найти соответствующее положение.
Примеры
В следующем примере показано использование этого метода. В примере метод используется GetPositionAtOffset для реализации пары методов, один из них вычисляет смещение до указанной позиции относительно любого размещающего абзаца, а другой — для возврата TextPointer к указанному смещению в указанном абзаце.
// Returns the offset for the specified position relative to any containing paragraph.
int GetOffsetRelativeToParagraph(TextPointer position)
{
// Adjust the pointer to the closest forward insertion position, and look for any
// containing paragraph.
Paragraph paragraph = (position.GetInsertionPosition(LogicalDirection.Forward)).Paragraph;
// Some positions may be not within any Paragraph;
// this method returns an offset of -1 to indicate this condition.
return (paragraph == null) ? -1 : paragraph.ContentStart.GetOffsetToPosition(position);
}
// Returns a TextPointer to a specified offset into a specified paragraph.
TextPointer GetTextPointerRelativeToParagraph(Paragraph paragraph, int offsetRelativeToParagraph)
{
// Verify that the specified offset falls within the specified paragraph. If the offset is
// past the end of the paragraph, return a pointer to the farthest offset position in the paragraph.
// Otherwise, return a TextPointer to the specified offset in the specified paragraph.
return (offsetRelativeToParagraph > paragraph.ContentStart.GetOffsetToPosition(paragraph.ContentEnd))
? paragraph.ContentEnd : paragraph.ContentStart.GetPositionAtOffset(offsetRelativeToParagraph);
}
' Returns the offset for the specified position relative to any containing paragraph.
Private Function GetOffsetRelativeToParagraph(ByVal position As TextPointer) As Integer
' Adjust the pointer to the closest forward insertion position, and look for any
' containing paragraph.
Dim paragraph As Paragraph = (position.GetInsertionPosition(LogicalDirection.Forward)).Paragraph
' Some positions may be not within any Paragraph
' this method returns an offset of -1 to indicate this condition.
Return If((paragraph Is Nothing), -1, paragraph.ContentStart.GetOffsetToPosition(position))
End Function
' Returns a TextPointer to a specified offset into a specified paragraph.
Private Function GetTextPointerRelativeToParagraph(ByVal paragraph As Paragraph, ByVal offsetRelativeToParagraph As Integer) As TextPointer
' Verify that the specified offset falls within the specified paragraph. If the offset is
' past the end of the paragraph, return a pointer to the farthest offset position in the paragraph.
' Otherwise, return a TextPointer to the specified offset in the specified paragraph.
Return If((offsetRelativeToParagraph > paragraph.ContentStart.GetOffsetToPosition(paragraph.ContentEnd)), paragraph.ContentEnd, paragraph.ContentStart.GetPositionAtOffset(offsetRelativeToParagraph))
End Function
Комментарии
Символом считается любое из следующих элементов:
Открывающий или закрывающий тег для TextElement элемента.
Элемент UIElement , содержащийся в InlineUIContainer или BlockUIContainer. Обратите внимание, что такой UIElement объект всегда считается ровно одним символом; любое дополнительное содержимое или элементы, содержащиеся в UIElement , не учитываются как символы.
16-разрядный символ Юникода внутри текстового Run элемента.