-2
編輯
I changed the title because I found the real cause of the freeze. The cause is in my awnser
首先控制顯示凍結UI
在WPF中,你第一次顯示控制,它可能會很慢,因爲XAML將被解析。下次顯示控件時,它將是即時的,因爲XAML已經被解析。
我試圖通過使用可視化加載系統來減少UI凍結,該系統使視覺崩潰並使其在低優先級調度程序調用中可見。這項工作與ItemsControl很多項目,但它仍然不解決第一個解析UI凍結。
是否有減少XAML解析引起的凍結的好方法?
我在考慮解析應用程序啓動時的所有XAML。這會減慢啓動速度,但應用程序在此之後將不會凍結。 難點在於如何獲取所有BALM文件(已編譯的XAML)以及如何將結果存儲在WPF查找它們的相同位置。
但編譯應用程序時,XAML文件會編譯到BAML中。我會進一步探討你需要推遲UI加載的事實,因爲它太複雜了,也許這是你應該解決的根本原因。 –
如果您使用的是最新版本的Visual Studio,我鼓勵您使用Performance Profiler工具來確保您具有您認爲自己的性能瓶頸。在VS2017中,可以在Debug> Performance Profiler下找到它。 –