有时候,在尝试从RichTextBox中的鼠标位置获取文本位置时,我会得到 FatalExecutionEngineError 。第二个问题是我无法处理 FatalExecutionEngineError 并且它崩溃了应用程序。
// e.MouseDevice.GetPosition(XAMLRichBox) is not null
var tp = myRichBox.GetPositionFromPoint(e.MouseDevice.GetPosition(XAMLRichBox), true);
答案 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();
}
我想这可能会让你有解决问题的想法