TextPointer.GetOffsetToPosition(TextPointer) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の TextPointer と指定した 2 つ目の 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
距離 (シンボル単位) を確認する位置を指定する TextPointer。
戻り値
現在の TextPointer と position
の間にあるシンボルの相対的な数。 負の値は、現在の TextPointer が position
で指定された位置より後にあることを示します。0 は、2 つの位置が等しいことを示します。正の値は、現在の TextPointer が position
で指定されている位置より前にあることを示します。
例外
position
は、現在の位置に関連付けられているテキスト コンテナー外部の位置を指定します。
例
次の例では、このメソッドの使用方法を示します。 この例では、 メソッドを GetOffsetToPosition 使用して 2 つの TextPointer インスタンスのオフセットを検索し、この情報を使用して 内の RichTextBox選択範囲を保存および復元します。 この例では、 の内容が、選択範囲の RichTextBox 保存と選択の復元の間で変更されていないことを前提としています。
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
注釈
次のいずれかがシンボルと見なされます。
要素の開始タグまたは終了タグ TextElement 。
UIElementまたは BlockUIContainerにInlineUIContainer含まれる要素。 このような は UIElement 常に 1 つのシンボルとしてカウントされることに注意してください。に含まれる UIElement 追加のコンテンツまたは要素はシンボルとしてカウントされません。
テキスト Run 要素内の 16 ビット Unicode 文字。
適用対象
こちらもご覧ください
.NET