如何加载WPF主题?

如何加载WPF主题?,wpf,wpf-controls,themes,Wpf,Wpf Controls,Themes,WPF控件从主题(通常在PresentationFramework.Aero.dll中)获取其默认样式、颜色和笔刷 哪个部件装载了这个组件?资源字典存储在哪里 我有自己的WPF自定义主题,并将它们加载到Application.Current.Resources.MergedDictionary中。 但是,如果WPF主题控件托管在Windows窗体中,则此操作无效,因为Application.Current为null 有没有一种方法可以做与WPF类似的事情?如果是,那是什么?您不能在Winform

WPF控件从主题(通常在PresentationFramework.Aero.dll中)获取其默认样式、颜色和笔刷

哪个部件装载了这个组件?资源字典存储在哪里

我有自己的WPF自定义主题,并将它们加载到Application.Current.Resources.MergedDictionary中。 但是,如果WPF主题控件托管在Windows窗体中,则此操作无效,因为Application.Current为null


有没有一种方法可以做与WPF类似的事情?如果是,那是什么?

您不能在Winforms中使用WPF主题,因为它们是两种不同的技术。Winforms本机没有类似的主题机制。您可以使用支持Winforms中主题的第三方控件。其中最值得注意的是来自基础设施和Telerik的工具


底线答案是不,没有。你能试着只将主题添加到控件而不是应用程序吗

control.Resources.MergedDictionaries.Clear();
control.Resources.MergedDictionaries.Add(resourceDictionary);
(回答我自己的问题) 将资源字典作为主题加载的方法是将其添加到generic.xaml资源字典的合并字典列表中

没有其他方法可以将资源字典作为主题加载


当从WinForms使用时,这很好

我不是问WinForms主题,而是问在WinForms中托管时的WPF主题。我相信这仍然适用。基础是Winforms,这意味着它没有主题。Winforms没有主题,但Winforms中承载的WPF有主题。例如,如果您在WinForms中托管一个WPF按钮,则会加载PresentationFramework.Areo。我的问题是谁加载它以及资源字典存储在内存中的什么位置。我的问题的目标是避免向单个控件添加主题。