WPF 控件从主题中获取其默认样式、颜色和画笔(通常在 PresentationFramework.Aero.dll 中)。
此组件由哪块负载?资源字典存储在哪里?
我有自己的 WPF 自定义主题,并将它们加载到 Application.Current.Resources.MergedDictionary 中。但是,如果 WPF 主题控件承载在 Windows 窗体中,则这不起作用,因为 Application.Current 为空。
有没有办法执行类似于 WPF 功能的操作?如果是这样,它是什么?
不能在 Winforms 中使用 WPF 主题,因为它们是两种不同的技术。 在Winforms中原生没有类似的主题机制。 您可以使用支持 WinForms 中主题的第三方控件。 其中最引人注目的是Infragistics和Telerik的工具。
底线答案是否定的,没有。
您可以尝试只将主题添加到控件而不是应用程序吗?
control.Resources.MergedDictionaries.Clear();
control.Resources.MergedDictionaries.Add(resourceDictionary);
(回答我自己的问题)将资源字典加载为主题的方法是将其添加到 generic.xaml 资源字典的合并字典列表中。
没有其他方法可以将资源字典加载为主题。
从WinForms使用时,这工作正常