我的WPF应用程序中有RichTextBox。它显示一个文档,可以在ListBox中选择该文档。选择RichTextBox.Document后,更改就像这样:
rtb.Document = SelectedDocument;现在我需要启用SpellCheck。我需要添加CustomDictionary,因为标准拼写检查不支持俄语。我找到了.lex格式(约60Mb)的真正的大俄语词典,并尝试在应用程序开始时将其添加到SpellCheck中:
rtb.SpellCheck.CustomDictionaries.Add(new Uri(@"pack://application:,,,/Dictionaries/Russian.lex"));启动时间增加了5-7秒,但这是可以的。主要问题是每次文档发生变化时SpellCheck都会加载该字典。文档的每次切换现在需要5-7秒。它不依赖于文档,我尝试了只有一个符号的文档。
如果我只想改变文档的内容(清除Document.Blocks并填充新的内容),所有的工作都不需要长时间的加载。但在这种情况下,我会丢失文本中的图像以及xaml与textbox和viewmodel之间的连接。
有没有办法禁止每次更改文档时都加载字典,或者更容易忘记standart拼写检查器并查找/编写另一个?
发布于 2018-01-30 21:09:33
看起来你的临时字典太多了。
全局打开寄存器编辑器(REGEDIT.EXE)
的temp dictionaries
如果您更改字典并尝试将其添加到SpellChecker,您可能会在临时文件夹和注册表中看到字典的两个版本。
更多信息here
发布于 2014-03-07 17:44:06
在切换文档内容之前,是否尝试禁用拼写检查器?
rtb.SpellCheck.IsEnabled = false;加载完文档后,请尝试重新启用它。
希望这能有所帮助。
https://stackoverflow.com/questions/22245047
复制相似问题