从 WPF RichTextBox 中删除 InlineUIContainer

本文关键字:删除 InlineUIContainer RichTextBox WPF | 更新日期: 2023-09-27 18:30:30

我有一个带有InlineUIContainer的RTB。我将它们存储在列表中,以便可以直接访问它们。如何在 C# 中从我的 RTB 中删除它们?

代码示例:

// for some TextPointer textPointer in my RTB
TextBlock tb = new TextBlock();
tb.Text = "hello world";
InlineUIContainer inlineUIContainer = new InlineUIContainer(tb, textPointer);
tb_list.Add(inlineUIContainer);

从 WPF RichTextBox 中删除 InlineUIContainer

在这里,您可以像下面这样删除它。如果这是本地容器集合:

            List<InlineUIContainer> containers = new List<InlineUIContainer>();

并且您要删除列表中第一个的容器,然后:

            InlineUIContainer inlineContainer = containers[0] ;    
            foreach (var block in myRTB.Document.Blocks)
            {
                if (block is Paragraph)
                {
                    var paragraph = block as Paragraph;
                    if (paragraph.Inlines.Contains(inlineContainer))
                    {
                        paragraph.Inlines.Remove(inlineContainer);
                    }
                }
            }