首页 > 解决方案 > 创建自定义 Button 控件的最节省内存的方法是什么?

问题描述

好的,所以我创建了一个自定义按钮控件,它有一个关联的 xaml 文件。我的另一个选择是没有关联的 xaml 文件,只在外部定义按钮的样式(在 Generic.xaml 中)。

使用前一种方法时,是否为我创建的每个按钮实例创建了附加的 xaml 文件的新实例?或者系统是否足够聪明,可以只创建该 xaml 数据的单个实例并将其用于每个按钮?

标签: c#xamluwp

解决方案


在这两种情况下,都会为您创建的每个控件实例重新构建控件的 XAML 树。您可以通过在其构造函数中放置一个向调试控制台输出内容的自定义控件来验证这一点。如果你将它放在带有 XAML 的自定义控件的模板或内容中,在这两种情况下,每当你创建一个新实例时都会创建一个新实例。

然而,ListView情况有点不同——它具有虚拟化功能并重用其项目,因此一旦它加载了足够的项目以供显示和一些缓冲区用于滚动,它就会继续使用数据绑定值更新现有实例。


推荐阅读