WPF应用程序中的第一个控件显示冻结UI

时间:2017-08-21 14:36:58

标签: c# wpf xaml

修改
I changed the title because I found the real cause of the freeze. The cause is in my awnser

在WPF中,第一次显示控件时,它可能会很慢,因为将解析XAML。下次显示控件时,它将是即时的,因为已经解析了XAML。

我试图通过使用延迟的视觉加载系统来减少UI冻结,这使得视觉崩溃并使它们在低优先级调度程序调用中可见。这项工作将与ItemsControl一起使用很多项目,但它仍然无法解决第一次解析UI冻结。

是否有一种减少XAML解析导致的冻结的好方法?

我正在考虑在应用启动时解析所有XAML。它会减慢启动速度,但应用程序将在此之后不会冻结。 困难在于如何获取所有BALM文件(已编译的XAML)以及如何将结果存储在WPF查找它们的相同位置。

1 个答案:

答案 0 :(得分:0)

我错了。缓慢不是来自XAML解析。它来自一些正在加载一些dll的静态构造函数。这就是为什么它只是第一次变慢。我将静态初始化移动到了一个线程。