C# 将大自定义词典添加到RichTextBox';拼写检查

C# 将大自定义词典添加到RichTextBox';拼写检查,c#,wpf,spell-checking,C#,Wpf,Spell Checking,我的WPF应用程序中有RichTextBox。它显示一个文档,可以在列表框中选择。选择RichTextBox后。文档更改如下: rtb.Document = SelectedDocument; 现在我需要启用拼写检查。我需要添加CustomDictionary,因为standart拼写检查不支持俄语。我找到了一本真正的大型俄语词典,采用.lex格式(~60MB),并尝试在应用程序启动时将其添加到拼写检查中: rtb.SpellCheck.CustomDictionaries.Add(new U

我的WPF应用程序中有RichTextBox。它显示一个文档,可以在列表框中选择。选择RichTextBox后。文档更改如下:

rtb.Document = SelectedDocument;
现在我需要启用拼写检查。我需要添加CustomDictionary,因为standart拼写检查不支持俄语。我找到了一本真正的大型俄语词典,采用.lex格式(~60MB),并尝试在应用程序启动时将其添加到拼写检查中:

rtb.SpellCheck.CustomDictionaries.Add(new Uri(@"pack://application:,,,/Dictionaries/Russian.lex"));
发射时间增加了5-7秒,但还行。主要问题是每次文档更改时都要检查该词典的拼写。每次切换文档都需要5-7秒。它不依赖于文档,我尝试了只使用一个符号的文档。
若我试图只改变文档的内容(清除document.Blocks并填充新内容),那个么一切都可以在不长时间加载的情况下工作。但在这种情况下,我将丢失文本中的图像以及xaml与textbox和viewmodel之间的连接。

是否有任何方法可以禁止每次文档更改时加载字典,或者更容易忘记standart spellchecker并查找/编码另一个字典?

在切换文档内容之前是否尝试禁用拼写检查器

 rtb.SpellCheck.IsEnabled = false;
加载完文档后,请尝试重新启用它


希望这有帮助。

看来你的临时字典太多了

  • 打开寄存器编辑器(REGEDIT.EXE
  • 转到“HKEY\U当前用户\软件\微软\拼写\字典”
  • 打开Global并使用临时字典删除行。只留下办公室字典。检查对临时字典的其他引用
  • %USER%\AppData\Local\Temp“
  • 如果您更改词典并试图将其添加到拼写检查器中,您可能会在临时文件夹和注册表中看到词典的两个版本


    更多信息

    现在,当我启用拼写检查时,速度变慢了。