RichTextBox中的FatalExecutionEngineError

时间:2016-12-22 07:32:52

标签: wpf exception-handling richtextbox fatal-error

有时候,在尝试从RichTextBox中的鼠标位置获取文本位置时,我会得到 FatalExecutionEngineError 。第二个问题是我无法处理 FatalExecutionEngineError 并且它崩溃了应用程序。

// e.MouseDevice.GetPosition(XAMLRichBox) is not null
var tp = myRichBox.GetPositionFromPoint(e.MouseDevice.GetPosition(XAMLRichBox), true);

1 个答案:

答案 0 :(得分:1)

我在使用RichTextFormat时遇到了类似的问题,而且我的经验可能对你有帮助。

当用户在richtextedit控件中调用Undo操作时,我遇到了上述异常。如果先前已经执行了特定的操作,包括插入到CaretPosition中的单独创建的FlowDocument的内容,则抛出异常:

Document.ContentStart.InsertParagraphBreak();
RichTextBox.InsertDocument(Document, RichTextBox.CaretPosition); 

我的解决方案是将上述操作包含在BeginChange()/ EndChange()中(完全符合要求):

RichTextBox.BeginChange();
try
{
    Document.ContentStart.InsertParagraphBreak();
    RichTextBox.InsertDocument(Document, RichTextBox.CaretPosition); 
}
finally
{
    RichTextBox.EndChange();
}

我想这可能会让你有解决问题的想法