小编use*_*159的帖子

确定WPF RichTextBox中选定的InlineUIContainer

我想确定在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>
Run Code Online (Sandbox Code Playgroud)

在SelectionChanged事件中,我尝试过使用;

rtf.CaretPosition.GetAdjacentElement(rtf.CaretPosition.LogicalDirection)
Run Code Online (Sandbox Code Playgroud)

...返回null.

我可以使用MouseDoubleClicked事件处理程序,如下所示;

Point pos = e.GetPosition(rtf);
TextPointer pointer = rtf.GetPositionFromPoint(pos, false);
Console.WriteLine(pointer.GetAdjacentElement(pointer.LogicalDirection));
Run Code Online (Sandbox Code Playgroud)

但是当RichTextBox插入位置发生变化时,我真的很想让它工作.

有什么办法可以实现吗?

提前致谢

马特

wpf richtextbox selection

4
推荐指数
1
解决办法
5998
查看次数

标签 统计

richtextbox ×1

selection ×1

wpf ×1