2011-06-10 61 views
3

在WPF应用程序中,所有视图都是从System.Windows.Window继承的,并且有一个关联的xaml和代码隐藏文件。这似乎合乎逻辑。为什么Application类(App)具有xaml和代码隐藏文件?

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

+0

可能重复[此问题](http://stackoverflow.com/q/4146268/438180)。 – 2011-06-10 13:40:16

+0

@archer。这个问题是不同的。在这个问题中,它被要求在应用程序文件中需要什么样的代码。我不是这样问的。你可以重新阅读这个问题。我知道通常在其中定义了什么。但我的观点是,如果这不是一个视图(用户不可见),那为什么它有一个xaml文件?仅仅拥有一个cs文件还不够吗? – 2011-06-10 13:59:55

回答

5

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

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

进入我脑海的第一个例子是工作流(XOML是XAML的衍生物),SharePoint在一些隐藏部分也使用XAML,并且我在一个客户项目中看到使用XAML作为元用于生成网络应用的语言(是的,它实际上输出HTML)。

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

  • 声明一些对象(在XAML)
  • 覆盖行为(通过覆盖适当的方法)
+0

+1为好的解释。 – 2011-06-10 14:01:54

1

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

+0

我知道。但我的问题是,为什么有两个文件,而不是一个。可能是为了开发人员的方便,以便他们可以实现他们的语言(xaml或cs)他们更舒适的逻辑。 – 2011-06-10 14:05:32

+0

XAML文件 - 对于设计人员来说,他们对C#,CS文件一无所知 - 用于编码器。怎么了?你如何看待他们可以合并? – 2011-06-10 14:09:34

相关问题