2011-03-04 26 views
16

Actualmente tenemos varios controles WPF en una aplicación WinForms. La aplicación se inicia utilizando el método System.Windows.Forms.Application.Run(...) y los controles WPF alojados utilizando el ElementHost.WPF utilizado dentro de una aplicación WinForms, ¿dónde ubicar los recursos de la aplicación?

En una aplicación normal WPFme gustaría definir un objeto System.Windows.Application (App.xaml) y llamar a correr en él. Normalmente cualquier nivel de aplicación WPF recursos iría allí. No tenemos esto

¿Cómo puedo especificar los recursos a nivel de aplicación para los WPF controles, pero todavía funcionan como WinForms aplicación?

Respuesta

13

En un entorno alojado no tiene fácil acceso a la Aplicación, el Dr. WPF tiene un par de métodos para trabajar en un escenario alojado en http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/.

Personalmente estoy usando su clase SharedResources en un proyecto de trabajo, alojamiento de formulario VB6 Winforms UserControl hosting ElementHost hosting WPF UserControl con un tema de aplicación amplia, para los controles de WPF.

1

Si aloja controles WPF dentro de una aplicación WinForms, no tiene el objeto Application que aloja los recursos de toda la aplicación. El truco consiste en crear dicho objeto, cargar sus recursos globales y fusionarlos en el ResourceDictionary.

Aquí es un ejemplo de este código:

http://www.snippetsource.net/Snippet/26/load-application-level-resources-in-winforms-hosted-wpf-controls (enlace fijo)

+1

Esta respuesta no es útil; el enlace al código va a una página muerta. Los fragmentos de código deben publicarse * aquí *. –

Cuestiones relacionadas