2010-08-26 16 views
37

¿Hay algún motivo por el que Visual Studio no me permita crear una ventana WPF en un proyecto DLL?¿No se creó una ventana WPF en un proyecto DLL?

Lo "resolví" creando una ventana en un Proyecto de aplicación y copiándolo en mi proyecto DLL. También encontré que solo podía crear un UserControl y cambiar la clase base a "Ventana".

Pero si tuviera que hacerlo de esta manera, es tal vez porque yo no debería hacerlo ...

Respuesta

66

Asegúrese de que el tipo de proyecto sea WPF User Control Library cuando cree su proyecto.

Si no es así entonces no hay problema, simplemente editar el archivo csproj y asegúrese de que el elemento <ProjectTypeGuids> bajo Project/PropertyGroup contener los siguientes GUID

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Además, asegúrese de hacer referencia a PresentationFramework y System.Xaml en su proyecto, o no obtendrá ningún WPF en su código.

+0

Hola Florian, Gracias por su respuesta, estaba confundiendo el tipo de proyecto y usé "Class Library". : -s –

+6

Hoy en día en .NET 4+ System.Xaml también se requiere junto con PresentationFramework. – Phil

4

¿Qué quiere decir que Visual Studio no le permitirá crear una ventana de WPF en un proyecto DLL ? ¿Quiere decir que si hace clic derecho en el proyecto, no hay ninguna opción para agregar una ventana allí?

Si ese es el caso, creo que eso significa que creó un tipo de proyecto que no es un tipo de proyecto WPF. Me encontré con algo similar hace un tiempo cuando quería actualizar un proyecto de WinForms para usar WPF en su lugar - vea this question para más información.

+1

Hola, Gracias por su respuesta, estaba confundiendo el tipo de proyecto y usé "Biblioteca de clases". : -s –

6

lo hago de esta manera: 1) crear "Aplicación WPF" 2) eliminar App.xaml propiedades 3) el cambio del proyecto -> Tipo de salida de la aplicación: a la biblioteca de clases (originalmente no hay aplicación para Windows)

De lo contrario se producirán errores:

"archivo de la biblioteca proyecto no puede especificar ApplicationDefinition elemento"

"El archivo de proyecto contiene un valor de propiedad que no es válido"

1

Puede intentar agregar un nuevo Elemento de control de usuario de WPF y cambiarlo a Ventana.

Agregar nuevo Item-> WPF-> Control de Usuario

En XAML:

Cambio <UserControl> etiqueta como <Window>

En CS:

Cambio clase base de System.Windows.Controls.UserControl a System.Windows.Window.

Cuestiones relacionadas