【问题标题】:FatalExecutionEngineError in RichTextBoxRichTextBox 中的 FatalExecutionEngineError
【发布时间】:2017-05-07 18:28:43
【问题描述】:
有时,只是有时,我在尝试从 RichTextBox 中的鼠标位置获取文本位置时遇到 FatalExecutionEngineError。第二个问题是我无法处理 FatalExecutionEngineError 并导致应用程序崩溃。
// e.MouseDevice.GetPosition(XAMLRichBox) is not null
var tp = myRichBox.GetPositionFromPoint(e.MouseDevice.GetPosition(XAMLRichBox), true);
【问题讨论】:
标签:
wpf
exception-handling
richtextbox
fatal-error
【解决方案1】:
我在使用 RichTextFormat 时遇到了类似的问题,也许我的经验也可以帮到你。
当用户在富文本编辑控件中调用撤消操作时,我遇到了上述异常。如果先前已执行特定操作,包括将单独创建的 FlowDocument 的内容插入 CaretPosition,则在撤消时引发异常:
Document.ContentStart.InsertParagraphBreak();
RichTextBox.InsertDocument(Document, RichTextBox.CaretPosition);
我的解决方案是将上述操作封装在 BeginChange()/EndChange() 中(这完全符合要求):
RichTextBox.BeginChange();
try
{
Document.ContentStart.InsertParagraphBreak();
RichTextBox.InsertDocument(Document, RichTextBox.CaretPosition);
}
finally
{
RichTextBox.EndChange();
}
我想这可能会给你解决问题的想法