TextPointer.GetOffsetToPosition(TextPointer) Méthode

Définition

Retourne le nombre de symboles entre la TextPointer actuelle et une seconde TextPointerspécifiée.

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

Paramètres

position
TextPointer

Valeur TextPointer qui spécifie une position à laquelle rechercher la distance (en symboles).

Retours

Nombre relatif de symboles entre le courant TextPointer et positionle . Une valeur négative indique que le courant TextPointer suit la position spécifiée par position, 0 indique que les positions sont égales et qu’une valeur positive indique que le courant TextPointer précède la position spécifiée par position.

Exceptions

position spécifie une position en dehors du conteneur de texte associé à la position actuelle.

Exemples

L’exemple suivant illustre une utilisation pour cette méthode. L’exemple utilise la GetOffsetToPosition méthode pour rechercher les décalages pour deux TextPointer instances, puis utilise ces informations pour enregistrer et restaurer la sélection dans un RichTextBox. L’exemple suppose que le contenu du fichier RichTextBox n’a pas changé entre un enregistrement de sélection et une restauration de sélection.

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

Remarques

L’un des éléments suivants est considéré comme un symbole :

  • Balise ouvrante ou fermante pour un élément TextElement.

  • Élément UIElement contenu dans un InlineUIContainer ou BlockUIContainer. Notez qu’une telle UIElement est toujours comptée comme un symbole exactement unique ; tout contenu ou élément supplémentaire contenu par l'UIElement n’est pas comptabilisé comme symbole.

  • Caractère Unicode 16 bits à l’intérieur d’un élément de texte Run .

S’applique à

Voir aussi