我希望确定在 WPF RichTextBox 的当前插入符位置是否有 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插入符号位置更改时它能正常工作。
有没有办法可以实现这个功能呢?
提前致谢。
Matt