为什么Application类(App)同时具有xaml和代码隐藏文件?

时间:2011-06-10 13:21:25

标签: wpf xaml

在WPF应用程序中,所有视图都从System.Windows.Window继承,并具有关联的xaml和codebehind文件。这似乎是合乎逻辑的。

但是我很困惑,为什么继承自System.Windows.Application的App文件有一个xaml文件?虽然它是一个应用程序而不是一个视图(它是不可见的)?我知道这个文件通常用于定义应用程序资源等,而xaml提供了一种定义它们的有效方法。但这也可以以编程方式完成。那么wpf的设计者通过同时拥有“App”的xaml和代码文件来实现什么好处呢?他们中的其中一个还不够吗?

2 个答案:

答案 0 :(得分:5)

  

但是我很困惑,为什么继承自System.Windows.Application的App文件有一个xaml文件?虽然它是一个应用程序而不是一个视图(它是不可见的)?

请记住,XAML不是一种UI语言,而是一种通用的声明性语言。虽然它主要用于表示WPF或SilverLigth的UI,但它也用于声明其他非UI技术中的对象图。

我想到的第一个例子是工作流(XOML是XAML的衍生物),SharePoint也在一些隐藏部分使用XAML,我在一个客户项目中看到过使用XAML作为元 - 用于生成web-apps的语言(是的,它实际上输出HTML)。

然后,为了回答你的问题,应用程序有两个文件(实际上并不是一个要求),因为你可以:

  • 声明一些对象(在xaml中)
  • 覆盖应用程序的行为(通过覆盖适当的方法)

答案 1 :(得分:1)

设计人员可以为整个应用程序指定资源,无需输入任何代码并在任何窗口中使用它。它就像所有窗户的根。例如,如果在每个窗口中为每个TextBox(或任何其他控件)使用一种样式,则可以在 App.xaml 中指定它并在任何地方绑定而不重复。