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 zweiten angegebenen Zurück TextPointer.
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 Wert, der eine Position angibt, an der der Abstand (in Symbolen) gefunden werden soll.
Gibt zurück
Die relative Anzahl der Symbole zwischen dem aktuellen TextPointer und positiondem . Ein negativer Wert gibt an, dass der aktuelle TextPointer Wert auf die durch position, 0 angegebene Position folgt, dass die Positionen gleich sind, und ein positiver Wert gibt an, dass die aktuelle TextPointer Position vor der durch position.
Ausnahmen
position Gibt eine Position außerhalb des Textcontainers an, der der aktuellen Position zugeordnet ist.
Beispiele
Im folgenden Beispiel wird eine Verwendung für diese Methode veranschaulicht. Das Beispiel verwendet die GetOffsetToPosition Methode, um die Offsets für zwei TextPointer Instanzen zu finden, und verwendet dann diese Informationen, um die Auswahl in einer RichTextBox. Im Beispiel wird davon ausgegangen, dass sich der Inhalt des RichTextBox Elements zwischen dem Speichern einer Auswahl und einer Auswahlwiederherstellung nicht 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 wird als Symbol betrachtet:
Ein öffnender oder schließender Tag für ein TextElement Element.
Ein UIElement Element, das in einem InlineUIContainer oder BlockUIContainer. Beachten Sie, dass ein UIElement solches Symbol immer als genau ein Symbol gezählt wird. Alle zusätzlichen Inhalte oder Elemente, die in den UIElement Elementen enthalten sind, werden nicht als Symbole gezählt.
Ein 16-Bit-Unicode-Zeichen innerhalb eines Textelements Run .