使用XAML.cs创建XAML的开销是否比cs更多?

时间:2015-04-07 13:49:46

标签: c# wpf xaml

因此,我们以两种不同的方式扩展了Infragistics控件和WPF工具包控件。

方法#1:我们使用XAML和XAML.cs文件创建一个新的用户控件。然后在这里我们要么扩展目标控件,要么我们包装目标控件以扩展其功能。

方法#2:我们创建一个CS文件并扩展目标控件,然后在此处扩展其功能。

示例:

我有一个文本框,我在我的wpf应用程序中使用了100次。我希望每个工具箱都具有功能X或样式Y.

采用方法#1或方法#2的开销是否花费更多?

我倾向于相信虽然方法#1是首选路径可能略微增加,但在我把它带到我的团队之前,我需要一些更具体的答案。

1 个答案:

答案 0 :(得分:1)

考虑到纯粹的性能,我认为使用.XAMl.CS文件可能会因为调用initializeComponents()而稍慢一些,但老实说这可以忽略不计。

真正的好处来自于将UI逻辑移出.XAML.CS文件,您可以开始利用无外观控制模型(http://drwpf.com/blog/2009/05/12/itemscontrol-l-is-for-lookless/。)

这是Microsoft使用的模式。如果要查看任何默认WPF控件(例如按钮)的源代码,您会发现它们没有xaml.cs文件。相反,Microsoft提供了框架的默认可视化表示,但您可以通过向设置新模板的控件的资源字典添加样式来更改按钮的外观。

例如,我可以更改按钮样式,以便我的应用程序中的所有按钮都是黄色方块,而无需子类按钮并在构造函数中设置属性,这将减少必须创建的类的数量