2011-05-06 61 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中使用时效果很好