2011-05-06 62 views
1

WPF控件從主題(通常在PresentationFramework.Aero.dll)中獲取它們的默認樣式,顏色和畫筆。WPF主題如何加載?

什麼東西加載此程序集?資源字典存儲在哪裏?

我有我自己的WPF自定義主題並將它們加載到Application.Current.Resources.MergedDictionary中。 但是,如果由於Application.Current爲空,WPF主題控件託管在Windows窗體中,這不起作用。

有沒有辦法做類似於WPF的工作?如果是這樣,那是什麼?

回答

1

您不能在Winforms中使用WPF主題,因爲它們是兩種不同的技術。本地Winforms中沒有類似的主題機制。您可以使用Winforms中支持主題的第三方控件。其中最值得一提的是Infragistics和Telerik的工具。

底線答案是否定的,沒有。

+0

我不是在問WinForms主題,而是在WinForms中託管WPF主題。 – user380719 2011-05-06 06:18:30

+0

我相信這仍然適用。基礎是Winforms,這意味着它沒有主題。 – IAmTimCorey 2011-05-06 06:21:31

+0

Winforms沒有主題,但在WinForms中託管了WPF。例如,如果您在WinForms中託管WPF按鈕,則會加載PresentationFramework.Areo _does_。我的問題是誰加載它,資源字典在哪裏存儲在內存中。 – user380719 2011-05-06 06:26:04

0

你可以嘗試只是將主題添加到控件而不是應用程序?

control.Resources.MergedDictionaries.Clear(); 
control.Resources.MergedDictionaries.Add(resourceDictionary); 
+0

我的問題的目標是避免將主題添加到單個控件。 – user380719 2011-05-06 14:14:39

0

(回答我的問題) 的方式來加載資源字典的主題是將其添加到generic.xaml資源字典的合併字典的名單。

沒有其他方法可以將資源字典加載爲主題。

在WinForms中使用時效果很好