Wpf 从段落中删除内联时出现堆栈溢出

Wpf 从段落中删除内联时出现堆栈溢出,wpf,richtextbox,stack-overflow,paragraph,Wpf,Richtextbox,Stack Overflow,Paragraph,我在RichTextBox.CaretPosition中为一个段落添加了许多内联线。 当我想删除这样的内联文件时: var para = _rtb.CaretPosition.Paragraph; Inline inlineToRemove = para.Inlines.FirstInline; if (inlineToRemove != null) para.Inlines.Remove(inlineToRemove);

我在
RichTextBox.CaretPosition
中为一个段落添加了许多内联线。 当我想删除这样的内联文件时:

        var para = _rtb.CaretPosition.Paragraph;

        Inline inlineToRemove = para.Inlines.FirstInline;
        if (inlineToRemove != null)
            para.Inlines.Remove(inlineToRemove);
出现错误:
StackOverflow

An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
以前

设置


我不喜欢这个,但它对我有用

恐怕你必须提供更多关于你正在做什么的细节。我尝试向RichTextBox添加100000个内联线,然后删除了第一个内联线,但没有出现堆栈溢出。当遇到堆栈溢出时,调用堆栈窗口中会显示哪些调用?我正在开发一个标记化的文本框,为每个标记添加一个内嵌到richtextbox的文本框。每个内联线都有一个关闭按钮。当我按下“关闭”按钮并要删除该内联时,我收到了该错误。恐怕我们需要更多的信息。至少,我们需要更多地了解您的代码。如果我们不能重现你的堆栈溢出,我们就帮不了你。我也有类似的异常(算术下溢或下溢)。也许使用dispatcher会有所帮助:para.dispatcher.BeginInvoke(DispatcherPriority.Normal,新操作(()=>{Inline inlineoremove=para.Inlines.FirstInline;if(inlineoremove!=null)para.Inlines.Remove(inlineoremove);});
para.Inlines.Remove(inlineToRemove);
(inlineToRemove.Child as TokenItem).Content = null;