TextPointer.GetOffsetToPosition(TextPointer) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 .