将 SpellCheck.IsEnabled 添加到控件后,WPF 表单加载速度非常慢
WPF Form Loads very slow after adding SpellCheck.IsEnabled to a Control
所以我有一个神秘的问题,在我将 SpellCheck.IsEnabled
添加到我的一个控件之后,托管此控件的表单需要超过 3 秒才能加载。删除拼写检查属性,表单会立即加载。
仅供参考,以下是表格中唯一变化的地方:
<TextBox TextWrapping="Wrap" Height="100"
Text="{Binding ActivePostMetadata.Abstract}" SpellCheck.IsEnabled="True"
IsEnabled="{Binding IsAbstractVisible}"
/>
使用 SpellCheck.IsEnabled="True"
窗体的 InitializeLayout 需要大约 3 秒,没有它初始化是即时的。
更奇怪的是:它只发生在我的开发机器上。当运行在另一台机器上编译应用程序时,表格立即弹出没有问题。
我怀疑这可能与查找词典的 Windows 问题有关,但我不知道去哪里找。
知道这里会发生什么吗?
好的,经过更多研究,问题似乎是由于此处注册了许多临时 词典文件造成的:
HKCU\SOFTWARE\Microsoft\Spelling\Dictionaries
我在 tmpFiles
中注册了大约 20 部词典,其中许多不存在。 tmpFiles 中有很多文件,可能是文件查找以及实际可用的 2 或 3 个词典导致速度变慢。不确定那里有什么转储临时词典,但我从列表中删除了所有临时文件(在我的情况下只留下 Word 词典),现在表单再次快速加载。
更多关于字典信息的来源以及最终让我找到它的信息来自这里:
https://msdn.microsoft.com/en-us/library/windows/desktop/hh869748(v=vs.85).aspx
所以我有一个神秘的问题,在我将 SpellCheck.IsEnabled
添加到我的一个控件之后,托管此控件的表单需要超过 3 秒才能加载。删除拼写检查属性,表单会立即加载。
仅供参考,以下是表格中唯一变化的地方:
<TextBox TextWrapping="Wrap" Height="100"
Text="{Binding ActivePostMetadata.Abstract}" SpellCheck.IsEnabled="True"
IsEnabled="{Binding IsAbstractVisible}"
/>
使用 SpellCheck.IsEnabled="True"
窗体的 InitializeLayout 需要大约 3 秒,没有它初始化是即时的。
更奇怪的是:它只发生在我的开发机器上。当运行在另一台机器上编译应用程序时,表格立即弹出没有问题。
我怀疑这可能与查找词典的 Windows 问题有关,但我不知道去哪里找。
知道这里会发生什么吗?
好的,经过更多研究,问题似乎是由于此处注册了许多临时 词典文件造成的:
HKCU\SOFTWARE\Microsoft\Spelling\Dictionaries
我在 tmpFiles
中注册了大约 20 部词典,其中许多不存在。 tmpFiles 中有很多文件,可能是文件查找以及实际可用的 2 或 3 个词典导致速度变慢。不确定那里有什么转储临时词典,但我从列表中删除了所有临时文件(在我的情况下只留下 Word 词典),现在表单再次快速加载。
更多关于字典信息的来源以及最终让我找到它的信息来自这里:
https://msdn.microsoft.com/en-us/library/windows/desktop/hh869748(v=vs.85).aspx