目前,我们在 WinForms 应用程序中托管了许多 WPF 控件。该应用程序使用System.Windows.Forms.Application.Run(...)
方法和使用ElementHost
托管的 WPF 控件启动。
在正常的 WPF 应用程序中,我定义了一个System.Windows.Application
对象(App.xaml
)并在其上调用run。通常,任何应用程序级别 WPF 资源都会进入。我们没有这个。
如何为 WPF 控件指定应用程序级资源,但仍作为 WinForms 应用程序运行?
答案 0 :(得分:13)
在托管环境中,您无法轻松访问应用程序,WPF博士有两种方法可以在http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/的托管方案中工作。
我个人在一个工作项目中使用他的SharedResources类,VB6表单托管Winforms UserControl托管ElementHost托管WPF UserControl和一个应用程序范围主题,用于WPF控件。
答案 1 :(得分:-2)
如果您在WinForms应用程序中托管WPF控件,则您没有托管应用程序范围资源的Application
对象。诀窍是创建这样的对象,加载您的全局资源并将它们合并到ResourceDictionary
。
以下是此代码的示例: