【问题标题】:Adding big CustomDictionary to RichTextBox's SpellCheck向 RichTextBox 的拼写检查添加大的 CustomDictionary
【发布时间】:2018-01-30 21:42:41
【问题描述】:

我的 WPF 应用程序中有 RichTextBox。它显示一个文档,可以在 ListBox 中选择。选择 RichTextBox.Document 后,变化如下:

rtb.Document = SelectedDocument;

现在我需要启用拼写检查。我需要添加 CustomDictionary,因为标准拼写检查不支持俄语。我找到了 .lex 格式(~60 Mb)的真正大俄语词典,并尝试在应用程序启动时将其添加到 SpellCheck:

rtb.SpellCheck.CustomDictionaries.Add(new Uri(@"pack://application:,,,/Dictionaries/Russian.lex"));

启动时间增加了 5-7 秒,但没关系。每次文档更改时拼写检查加载该字典的主要问题。现在每次切换文件需要 5-7 秒。它不依赖于文档,我尝试了只有一个符号的文档。
如果我只想更改文档的内容(清除 Document.Blocks 并填充新内容),那么一切都无需长时间加载。但在这种情况下,我会丢失文本中的图像以及 xaml 与文本框和视图模型之间的连接。
有什么方法可以禁止每次文档更改时加载字典,否则会更容易忘记标准拼写检查器并查找/编码另一个?

【问题讨论】:

    标签: c# wpf spell-checking


    【解决方案1】:

    您的临时字典似乎太多了。

    1. 打开寄存器编辑器 (REGEDIT.EXE)
    2. 转到“HKEY_CURRENT_USER\Software\Microsoft\Spelling\Dictionaries”
    3. 打开 Global 并删除带有临时字典的行。只留下 Office 字典。检查对临时字典的其他引用
    4. "%USER%\AppData\Local\Temp" 中删除这些字典

    如果您更改字典并尝试将其添加到 SpellChecker,您可能会在临时文件夹和注册表中看到两个版本的字典。

    更多信息here

    【讨论】:

      【解决方案2】:

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

       rtb.SpellCheck.IsEnabled = false;
      

      加载完文档后,请尝试重新启用它。

      希望这会有所帮助。

      【讨论】:

      • 现在当我启用 SpellCheck 时它变慢了。
      猜你喜欢
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多