我正在研究WPF网格的性能改进,并发现ApplyTemplate()
调用单元消耗了相当多的资源。每次我们创建一个单元格并将ControlTemplate
应用于它时,它会再次加载XAML,尽管我认为这应该缓存在同一个模板中。
这可以节省一次又一次加载XMAL的成本吗?
此外,是否可以构建一个不依赖于XAML的ControlTemplate
,但我们可以通过编程方式设置可视化树来提高性能?
更新
我尝试使用代码创建的模板,并通过FrameworkElementFactory
完全生成可视化树。分析结果表明,这种方法没有提高性能。
似乎每个ApplyTemplate
调用中的XAML解析不会花费太多,但可视化树实例化大部分时间都是如此。