Freigeben über


TextPointer.GetPositionAtOffset Methode

Definition

Gibt eine TextPointer an die Position zurück, die durch den angegebenen Offset (in Symbolen) vom Anfang des Inhalts angegeben ist.

Überlädt

GetPositionAtOffset(Int32, LogicalDirection)

Gibt eine TextPointer an die Position zurück, die durch den angegebenen Offset (in Symbolen) vom Anfang der aktuellen TextPointer und in der angegebenen Richtung angegeben ist.

GetPositionAtOffset(Int32)

Gibt eine TextPointer an die Position zurück, die durch den angegebenen Offset (in Symbolen) vom Anfang des aktuellen TextPointerangegeben ist.

GetPositionAtOffset(Int32, LogicalDirection)

Gibt eine TextPointer an die Position zurück, die durch den angegebenen Offset (in Symbolen) vom Anfang der aktuellen TextPointer und in der angegebenen Richtung angegeben ist.

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

Parameter

offset
Int32

Ein Offset in Symbolen, für den die Position berechnet und zurückgegeben werden soll. Wenn der Offset negativ ist, liegt der zurückgegebene TextPointer vor dem aktuellen TextPointer; andernfalls folgt dies.

direction
LogicalDirection

Einer der LogicalDirection Werte, die die logische Richtung der zurückgegebenen TextPointerangibt.

Gibt zurück

Eine TextPointer an die durch den angegebenen Offset angegebene Position oder null, wenn der Offset über das Ende des Inhalts hinausgeht.

Hinweise

Eine der folgenden Elemente wird als Symbol betrachtet:

  • Ein öffnender oder schließender Tag für das TextElement-Element.

  • Ein UIElement Element, das in einem InlineUIContainer oder BlockUIContainerenthalten ist. Beachten Sie, dass eine solche UIElement immer als genau ein Symbol gezählt wird; Alle zusätzlichen Inhalte oder Elemente, die in der UIElement enthalten sind, werden nicht als Symbole gezählt.

  • Ein 16-Bit-Unicode-Zeichen innerhalb eines Text-Run-Elements.

Weitere Informationen

Gilt für:

GetPositionAtOffset(Int32)

Gibt eine TextPointer an die Position zurück, die durch den angegebenen Offset (in Symbolen) vom Anfang des aktuellen TextPointerangegeben ist.

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

Parameter

offset
Int32

Ein Offset in Symbolen, für den die Position berechnet und zurückgegeben werden soll. Wenn der Offset negativ ist, wird die Position in der logischen Richtung gegenüber der durch die eigenschaft LogicalDirection angegebenen berechnet.

Gibt zurück

Eine TextPointer an die durch den angegebenen Offset angegebene Position oder null, wenn keine entsprechende Position gefunden werden kann.

Beispiele

Im folgenden Beispiel wird eine Verwendung für diese Methode veranschaulicht. Im Beispiel wird die GetPositionAtOffset-Methode verwendet, um ein Methodenpaar zu implementieren, eines zum Berechnen des Offsets auf eine angegebene Position relativ zu einem beliebigen Hostingabsatz und zum Zurückgeben eines TextPointer zu einem angegebenen Offset in einem angegebenen Absatz.

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

Hinweise

Eine der folgenden Elemente wird als Symbol betrachtet:

  • Ein öffnender oder schließender Tag für das TextElement-Element.

  • Ein UIElement Element, das in einem InlineUIContainer oder BlockUIContainerenthalten ist. Beachten Sie, dass eine solche UIElement immer als genau ein Symbol gezählt wird; Alle zusätzlichen Inhalte oder Elemente, die in der UIElement enthalten sind, werden nicht als Symbole gezählt.

  • Ein 16-Bit-Unicode-Zeichen innerhalb eines Text-Run-Elements.

Weitere Informationen

Gilt für: