WPF在WinForms应用程序中使用,在哪里放置应用程序资源?

时间:2011-03-04 09:02:15

标签: c# wpf winforms resources

目前,我们在 WinForms 应用程序中托管了许多 WPF 控件。该应用程序使用System.Windows.Forms.Application.Run(...)方法和使用ElementHost托管的 WPF 控件启动。

在正常的 WPF 应用程序中,我定义了一个System.Windows.Application对象(App.xaml)并在其上调用run。通常,任何应用程序级别 WPF 资源都会进入。我们没有这个。

如何为 WPF 控件指定应用程序级资源,但仍作为 WinForms 应用程序运行?

2 个答案:

答案 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

以下是此代码的示例:

http://www.snippetsource.net/Snippet/26/load-application-level-resources-in-winforms-hosted-wpf-controls(已修复链接)