WPF RichTextBoxの現在のCaret位置にInlineUIContainer(またはBlockUIContainer)があるかどうかを確認したいと思います。
現在、私は次のようにRichTextBoxを持っています。
<RichTextBox SelectionChanged="RichTextBox_SelectionChanged">
<FlowDocument>
<Paragraph>
<Run>Some text before</Run>
<InlineUIContainer>
<Label>I am a label</Label>
</InlineUIContainer>
<Run>Some text after</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
SelectionChangedイベントで、私は使用しようとしました。
rtf.CaretPosition.GetAdjacentElement(rtf.CaretPosition.LogicalDirection)
...これはnullを返します。
次のように、MouseDoubleClickedイベントハンドラーを使用してこれを行うことができます。
Point pos = e.GetPosition(rtf);
TextPointer pointer = rtf.GetPositionFromPoint(pos, false);
Console.WriteLine(pointer.GetAdjacentElement(pointer.LogicalDirection));
しかし、RichTextBoxのキャレットの位置が変わったときにそれを機能させたいと思っています。
これを達成する方法はありますか?
前もって感謝します
マット