2011-06-10 46 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