2017-09-24 78 views
0

所以我有一個神祕的問題,在將SpellCheck.IsEnabled添加到我的控件之後,承載此控件的表單需要3秒鐘才能加載。刪除拼寫檢查屬性並立即加載表單。在將SpellCheck.IsEnabled添加到控件後,WPF表單加載非常緩慢

僅供參考,以下是形式變化的唯一的地方:

<TextBox TextWrapping="Wrap" Height="100" 
     Text="{Binding ActivePostMetadata.Abstract}" SpellCheck.IsEnabled="True" 
     IsEnabled="{Binding IsAbstractVisible}" 
          /> 

隨着SpellCheck.IsEnabled="True"形式的InitializeLayout大約需要3秒,沒有它的初始化是即時的。

讓事情變得更奇怪:它只發生在我的開發機器上。當在另一臺機器上運行已編譯的應用程序時,即時彈出窗體沒有問題。

我懷疑它與可能的Windows查找字典問題有關,但我不知道在哪裏尋找。

任何想法可能會發生什麼?

回答

1

好了,更多的研究後,它看起來像這個問題是由於在這裏註冊的許多臨時字典文件:

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