TextPointer.GetPositionAtOffset Метод

Определение

Возвращение TextPointer в положение, указанное заданным смещением в символах от начала содержимого.Returns a TextPointer to the position indicated by the specified offset, in symbols, from the beginning of content.

Перегрузки

GetPositionAtOffset(Int32, LogicalDirection)

Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer, а также в указанном направлении.Returns a TextPointer to the position indicated by the specified offset, in symbols, from the beginning of the current TextPointer and in the specified direction.

GetPositionAtOffset(Int32)

Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer.Returns a TextPointer to the position indicated by the specified offset, in symbols, from the beginning of the current TextPointer.

GetPositionAtOffset(Int32, LogicalDirection)

Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer, а также в указанном направлении.Returns a TextPointer to the position indicated by the specified offset, in symbols, from the beginning of the current TextPointer and in the specified direction.

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

Смещение (в символах) на которое необходимо рассчитывать и возвращать положение.An offset, in symbols, for which to calculate and return the position. Если смешение отрицательное, возвращенный TextPointer предшествует текущему TextPointer; в противном случае, он идет следом.If the offset is negative, the returned TextPointer precedes the current TextPointer; otherwise, it follows.

direction
LogicalDirection

Одно из значений LogicalDirection, которое указывает логическое направление возвращенного TextPointer.One of the LogicalDirection values that specifies the logical direction of the returned TextPointer.

Возвраты

Указатель TextPointer на положение, определяемое заданным смещением, или null, если смещение выходит за рамки содержимого.A TextPointer to the position indicated by the specified offset, or null if the offset extends past the end of the content.

Комментарии

Любой из следующих элементов считается символом:Any of the following is considered to be a symbol:

  • Открывающий или закрывающий тег для TextElement элемента.An opening or closing tag for the TextElement element.

  • Элемент, содержащийся InlineUIContainer в или BlockUIContainer. UIElementA UIElement element contained in an InlineUIContainer or BlockUIContainer. Обратите внимание, UIElement что такое значение всегда учитывается как один символ; любое дополнительное содержимое или элементы, UIElement содержащиеся в, не учитываются как символы.Note that such a UIElement is always counted as exactly one symbol; any additional content or elements contained by the UIElement are not counted as symbols.

  • 16-разрядный ЮникодUnicode символ внутри текстового Run элемента.A 16-bit ЮникодUnicode character inside of a text Run element.

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

GetPositionAtOffset(Int32)

Возвращение TextPointer в положение, указанное заданным смещением в символах от начала текущего TextPointer.Returns a TextPointer to the position indicated by the specified offset, in symbols, from the beginning of the current 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

Смещение (в символах) на которое необходимо рассчитывать и возвращать положение.An offset, in symbols, for which to calculate and return the position. Если смещение отрицательное, положение рассчитывается в логическом направлении, противоположном заданному свойством LogicalDirection.If the offset is negative, the position is calculated in the logical direction opposite of that indicated by the LogicalDirection property.

Возвраты

Указатель TextPointer на положение, определенное заданным смещением, или null, если невозможно найти соответствующее положение.A TextPointer to the position indicated by the specified offset, or null if no corresponding position can be found.

Примеры

В следующем примере демонстрируется использование этого метода.The following example demonstrates a use for this method. В примере используется GetPositionAtOffset метод для реализации пары методов, один для вычисления смещения до указанной позиции относительно любого абзаца размещения, а другой — TextPointer для возврата к указанному смещению в указанном абзаце.The example uses the GetPositionAtOffset method to implement a pair of methods, one to calculate the offset to a specified position relative to any hosting paragraph, and the other to return a TextPointer to a specified offset in a specified paragraph.

// 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

Комментарии

Любой из следующих элементов считается символом:Any of the following is considered to be a symbol:

  • Открывающий или закрывающий тег для TextElement элемента.An opening or closing tag for the TextElement element.

  • Элемент, содержащийся InlineUIContainer в или BlockUIContainer. UIElementA UIElement element contained in an InlineUIContainer or BlockUIContainer. Обратите внимание, UIElement что такое значение всегда учитывается как один символ; любое дополнительное содержимое или элементы, UIElement содержащиеся в, не учитываются как символы.Note that such a UIElement is always counted as exactly one symbol; any additional content or elements contained by the UIElement are not counted as symbols.

  • 16-разрядный ЮникодUnicode символ внутри текстового Run элемента.A 16-bit ЮникодUnicode character inside of a text Run element.

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

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