Determining the selected InlineUIContainer in a WPF RichTextBox

我怕爱的太早我们不能终老 提交于 2019-12-01 06:18:13

If your InlineUIContainer is given a x:Name attribute, you can look for it specifically using this code:

if (rtf.Selection.Contains(myInlineUIContainer.ContentStart))
{...}

For more dynamic discovery you would need a loop something like this:

foreach (Block block in rtf.Document.Blocks)
        {
            Paragraph p = block as Paragraph;
            if (p != null)
            {
                foreach (Inline inline in p.Inlines)
                {
                    InlineUIContainer iuic = inline as InlineUIContainer;
                    if (iuic != null)
                    {
                        if (rtf.Selection.Contains(iuic.ContentStart))
                        {
                            Console.WriteLine("YES");
                        }
                    }
                }
            }
        }

You can use CaretPosition.Parent and use the "is" operator.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!