2010-10-20 98 views
5

有沒有辦法根本不爲WPF指定主題,只是讓它默認爲操作系統使用?由於這個原因,我仍然偏愛Winforms。 WinForm應用程序感覺專業,輕便,並且是操作系統的一部分,而WPF應用程序(包括VS 2010)感覺很重。而且,WPF應用程序在視覺上不一致。它們就像網頁,每個開發人員都決定控件的大小,而不是將其留給用戶和操作系統。我更願意遵循指導原則。如何不爲WPF指定主題並使用主機操作系統主題?

回答

1

默認情況下,WPF將查詢系統設置以確定哪個Windows主題已被選中。然後它將使用一個WPF主題,該主題應該與系統的主題相匹配。這將爲顏色等屬性提供樣式,併爲整體外觀(包括動畫)提供模板。 WPF主題包含所有內置控件的樣式。

請記住,不像WinForms,WPF控件都是在WPF中創建的。在WinForms中,大多數控件都是使用pInvoke創建的,並且來自非託管代碼。

WinForms可以保證與操作系統相同的外觀,因爲控件來自操作系統。雖然這是一個很好的副作用,但另一方面,您的能力有限,無法與控件外觀進行交互,擴展或修改。

內置WPF的主題設計,以配合Windows主題包括:

 
Windows Vista: themes\Aero.NormalColor.xaml 
Windows XP: themes\Luna.NormalColor.xaml 
Olive Green Windows XP: themes\Luna.Homestead.xaml 
Silver Windows XP: themes\Luna.Metallic.xaml 
Windows XP Media Center Edition 2005 and XP Tablet PC Edition 2005: themes\Royale.NormalColor.xaml 
Windows Classic: themes\Classic.xaml