【发布时间】:2012-01-28 11:58:59
【问题描述】:
我在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 个内联,然后删除第一个,但没有堆栈溢出。当您遇到堆栈溢出时,调用堆栈窗口中会显示哪些调用?你能不能把SSCCE放在一起?
-
我正在开发一个标记化的文本框,并为每个标记添加一个内联到richtextbox。每个内联都有一个关闭按钮。当我按下关闭按钮并要删除该内联时,我收到了该错误。
-
恐怕我们需要更多的信息。至少,我们需要查看更多您的代码。 如果我们无法重现您的堆栈溢出,我们将无法帮助您。
-
我有类似的异常(算术下溢或下溢)。也许使用调度程序会有所帮助: para.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => { Inline inlineToRemove = para.Inlines.FirstInline; if (inlineToRemove != null) para.Inlines.Remove(inlineToRemove); } ));
标签: wpf richtextbox stack-overflow paragraph