TextPointer.GetOffsetToPosition(TextPointer) メソッド

定義

現在の TextPointer と指定した 2 つ目の TextPointer の間にあるシンボルの数を返します。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

パラメーター

position
TextPointer

距離 (シンボル単位) を確認する位置を指定する TextPointerA TextPointer that specifies a position to find the distance (in symbols) to.

戻り値

現在の TextPointerposition の間にあるシンボルの相対的な数。The relative number of symbols between the current TextPointer and position. 負の値は、現在の TextPointerposition で指定された位置より後にあることを示します。0 は、2 つの位置が等しいことを示します。正の値は、現在の TextPointerposition で指定されている位置より前にあることを示します。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.

例外

position は、現在の位置に関連付けられているテキスト コンテナー外部の位置を指定します。position specifies a position outside of the text container associated with the current position.

このメソッドの使用例を次に示します。The following example demonstrates a use for this method. この例ではGetOffsetToPosition 、メソッドを使用して 2 TextPointerつのインスタンスのオフセットを検索し、この情報を使用してRichTextBoxの選択を保存および復元します。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. この例では、 RichTextBoxの内容が選択保存と選択復元の間で変更されていないことを前提としています。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

注釈

次のいずれかがシンボルであると見なされます。Any of the following is considered to be a symbol:

  • TextElement要素の開始タグまたは終了タグ。An opening or closing tag for a TextElement element.

  • またはInlineUIContainer UIElement に格納されBlockUIContainerている要素。A UIElement element contained in an InlineUIContainer or BlockUIContainer. このようUIElementなは常に1つの記号としてカウントされることに注意しUIElementてください。に含まれる追加のコンテンツまたは要素は、シンボルとしてカウントされません。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.

  • UnicodeUnicode テキストRun要素内の16ビット文字。A 16-bit UnicodeUnicode character inside of a text Run element.

適用対象

こちらもご覧ください