TextPointer.GetOffsetToPosition(TextPointer) Metodo

Definizione

Restituisce il conteggio dei simboli tra l'oggetto TextPointer corrente e un secondo oggetto TextPointer specificato.Returns the count of symbols between the current TextPointer and a second specified 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

Parametri

position
TextPointer

Oggetto TextPointer che specifica una posizione dalla quale cercare la distanza (in simboli).A TextPointer that specifies a position to find the distance (in symbols) to.

Restituisce

Numero di simboli relativo tra l'oggetto TextPointer corrente e position.The relative number of symbols between the current TextPointer and position. Un valore negativo indica che l'oggetto TextPointer corrente segue la posizione specificata da position; 0 indica che le posizioni sono uguali; un valore positivo indica che l'oggetto TextPointer corrente precede la posizione specificata da position.A negative value indicates that the current TextPointer follows the position specified by position, 0 indicates that the positions are equal, and a positive value indicates that the current TextPointer precedes the position specified by position.

Eccezioni

position specifica una posizione esterna al contenitore di testo associato alla posizione corrente.position specifies a position outside of the text container associated with the current position.

Esempi

Nell'esempio seguente viene illustrato l'utilizzo di questo metodo.The following example demonstrates a use for this method. Nell'esempio viene utilizzato GetOffsetToPosition il metodo per trovare gli offset per due TextPointer istanze, quindi vengono utilizzate tali informazioni per salvare e ripristinare la selezione in un RichTextBoxoggetto.The example uses the GetOffsetToPosition method to find the offsets for two TextPointer instances, and then uses this information to save and restore the selection in a RichTextBox. Nell'esempio RichTextBox si presuppone che il contenuto di non sia stato modificato tra un salvataggio della selezione e un ripristino della selezione.The example assumes that the contents of the RichTextBox have not changed between a selection save and a selection restore.

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

Commenti

Uno dei seguenti è considerato un simbolo:Any of the following is considered to be a symbol:

  • Tag di apertura o di chiusura per TextElement un elemento.An opening or closing tag for a TextElement element.

  • Elemento contenuto in un oggetto InlineUIContainer o BlockUIContainer. UIElementA UIElement element contained in an InlineUIContainer or BlockUIContainer. Si noti che tale UIElement valore viene sempre conteggiato come un solo simbolo; eventuali elementi o contenuti aggiuntivi contenuti UIElement in non vengono conteggiati come simboli.Note that such a UIElement is always counted as exactly one symbol; any additional content or elements contained by the UIElement are not counted as symbols.

  • Carattere a 16 bit UnicodeUnicode all'interno di un elemento Run di testo.A 16-bit UnicodeUnicode character inside of a text Run element.

Si applica a

Vedi anche