Freigeben über


TextPointer.GetOffsetToPosition(TextPointer) Methode

Definition

Gibt die Anzahl der Symbole zwischen dem aktuellen TextPointer und einem weiteren bestimmten TextPointer zurück.

public:
 int GetOffsetToPosition(System::Windows::Documents::TextPointer ^ position);
public int GetOffsetToPosition (System.Windows.Documents.TextPointer position);
member this.GetOffsetToPosition : System.Windows.Documents.TextPointer -> int
Public Function GetOffsetToPosition (position As TextPointer) As Integer

Parameter

position
TextPointer

Ein TextPointer, mit dem eine Position angegeben wird, zu der die Entfernung (in Symbolen) bestimmt werden soll.

Gibt zurück

Int32

Die relative Anzahl von Symbolen zwischen dem aktuellen TextPointer und der position. Mit einem negativen Wert wird angegeben, dass sich der aktuelle TextPointer hinter der durch position angegebenen Position befindet; 0 gibt an, dass die Positionen identisch sind; und mit einem positiven Wert wird angegeben, dass sich der aktuelle TextPointer vor der durch position angegebenen Position befindet.

Ausnahmen

position gibt eine Position an, die außerhalb des der aktuellen Position zugeordneten Textcontainers liegt.

Beispiele

Im folgenden Beispiel wird eine Verwendung für diese Methode veranschaulicht. Im Beispiel wird die GetOffsetToPosition Methode verwendet, um die Offsets für zwei TextPointer Instanzen zu finden und dann diese Informationen zum Speichern und Wiederherstellen der Auswahl in einer RichTextBox. Im Beispiel wird davon ausgegangen, dass sich der Inhalt der RichTextBox Datei nicht zwischen einer Auswahlspeicherung und einer Auswahlwiederherstellen geändert hat.

struct SelectionOffsets { internal int Start; internal int End; }
 
SelectionOffsets GetSelectionOffsetsRTB(RichTextBox richTextBox)
{
    SelectionOffsets selectionOffsets;
 
    TextPointer contentStart = richTextBox.Document.ContentStart;

    // Find the offset for the starting and ending TextPointers.
    selectionOffsets.Start = contentStart.GetOffsetToPosition(richTextBox.Selection.Start);
    selectionOffsets.End = contentStart.GetOffsetToPosition(richTextBox.Selection.End);

    return selectionOffsets;
}

void RestoreSelectionOffsetsRTB(RichTextBox richTextBox, SelectionOffsets selectionOffsets)
{
    TextPointer contentStart = richTextBox.Document.ContentStart;
 
    // Use previously determined offsets to create corresponding TextPointers,
    // and use these to restore the selection.
    richTextBox.Selection.Select(
       contentStart.GetPositionAtOffset(selectionOffsets.Start),
       contentStart.GetPositionAtOffset(selectionOffsets.End)
    );
}
Private Structure SelectionOffsets
    Friend Start As Integer
    Friend [End] As Integer
End Structure

Private Function GetSelectionOffsetsRTB(ByVal richTextBox As RichTextBox) As SelectionOffsets
    Dim selectionOffsets As SelectionOffsets

    Dim contentStart As TextPointer = richTextBox.Document.ContentStart

    ' Find the offset for the starting and ending TextPointers.
    selectionOffsets.Start = contentStart.GetOffsetToPosition(richTextBox.Selection.Start)
    selectionOffsets.End = contentStart.GetOffsetToPosition(richTextBox.Selection.End)

    Return selectionOffsets
End Function

Private Sub RestoreSelectionOffsetsRTB(ByVal richTextBox As RichTextBox, ByVal selectionOffsets As SelectionOffsets)
    Dim contentStart As TextPointer = richTextBox.Document.ContentStart

    ' Use previously determined offsets to create corresponding TextPointers,
    ' and use these to restore the selection.
    richTextBox.Selection.Select(contentStart.GetPositionAtOffset(selectionOffsets.Start), contentStart.GetPositionAtOffset(selectionOffsets.End))
End Sub

Hinweise

Eine der folgenden Elemente gilt als Symbol:

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

  • Ein UIElement Element, das in einem oder BlockUIContainereinem InlineUIContainer . Beachten Sie, dass ein solches UIElement Symbol immer als genau ein Symbol gezählt wird; alle zusätzlichen Inhalte oder Elemente, die von den UIElement Symbolen enthalten sind, werden nicht als Symbole gezählt.

  • Ein 16-Bit-Unicode-Zeichen innerhalb eines Textelements Run .

Gilt für

Siehe auch