我的WPF应用程序中有RichTextBox。它显示一个文档,可以在ListBox中选择。选择RichTextBox.Document后,就像那样:
rtb.Document = SelectedDocument;
现在我需要启用SpellCheck。我需要添加CustomDictionary,因为标准拼写检查不支持俄语。我找到了.lex格式的真正的大俄语词典(~60 Mb)并试图在应用程序开始时将其添加到SpellCheck:
rtb.SpellCheck.CustomDictionaries.Add(new Uri(@"pack://application:,,,/Dictionaries/Russian.lex"));
启动时间增加了5-7秒,但没关系。 SpellCheck每次文件更改时加载该字典的主要问题。每次切换文件现在需要5-7秒。它不依赖于文档,我只用一个符号来尝试文档 如果我正在尝试更改文档的内容(清除Document.Blocks并填充新内容),那么所有内容都可以在没有长时间加载的情况下工作。但在这种情况下,我正在丢失文本中的图像以及xaml与textbox和viewmodel之间的连接 有没有办法在每次文档更改时禁止加载字典,或者更容易忘记标准拼写检查并查找/编写另一个?
答案 0 :(得分:1)
看起来你有太多的临时词典。
如果您更改字典并尝试将其添加到SpellChecker,您可能会在临时文件夹和注册表中看到字典的两个版本。
更多信息here
答案 1 :(得分:0)
在切换文档内容之前,您是否尝试禁用拼写检查程序?
rtb.SpellCheck.IsEnabled = false;
完成加载文档后,请尝试重新启用它。
希望这有帮助。