2010-09-21 16 views
7

Quiero usar ventanas de WPF en futuras aplicaciones en lugar de formularios de Windows.Cómo mostrar una ventana de WPF desde un método público estático en un proyecto de biblioteca de clases (dll)

La configuración actual es como Proyecto de biblioteca de clases con un método público estático. He agregado un elemento de Windows Form al Proyecto. En el método público estático creo una instancia de Windows Form Class y uso el método ShowDialog.

La razón por la que uso esta configuración es porque necesito mi propio diálogo .net en otro programa. Este programa solo puede llamar a los métodos públicos estáticos i .net.

He resuelto el problema creando un Proyecto de aplicación WPF y agregué un elemento de clase pública a este proyecto. En el método público estático, creo una instancia de la clase de ventana de WPF y uso el método ShowDialog. Esto funciona, pero me gustaría crear un dll sin main-method.

¿Cómo mostrar una ventana de WPF desde un método público estático en un proyecto de biblioteca de clases (dll)?

Respuesta

7

Los proyectos de la biblioteca de clases no tienen la plantilla de ventana de WPF, por lo que debe crear un UserControl y luego cambiar la etiqueta principal de <UserControl ...> a <Window ...>. Alternativamente, puede crear la ventana en un proyecto de aplicación WPF y luego copiar los archivos MyWindow.xaml* en su proyecto de biblioteca. (En ese caso, es posible que necesite reparar la propiedad Build Action de la Ventana en la ventana de propiedades. Visual Studio parece que lo arruinó cuando copia un archivo XAML en una biblioteca de clases que no es WPF)

Más adelante, puede muéstrelo como lo haría en una aplicación: en su método estático, cree una instancia de su Ventana y llame al ShowDialog.

Cuestiones relacionadas