Удаление InlineUIContainer из WPF RichTextBox

У меня есть RTB с InlineUIContainer. Я храню их в списке, чтобы получить к ним доступ напрямую. Как я могу удалить их из моего RTB в C#?

Пример кода:

// 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);

1 ответ

Решение

Здесь вы можете удалить его, как показано ниже. Если это ваша локальная коллекция контейнеров:

            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);
                    }
                }
            }
Другие вопросы по тегам