Antoine Jeanrichard
Antoine Jeanrichard

Reputation: 1113

No creation of a WPF window in a DLL project?

Is there a reason why Visual Studio won't let me create a WPF window in a DLL project?

I "solved" it by creating a window in an Application Project and copying it to my DLL project. I also found that I could just create a UserControl and change the base class to "Window".

But if I had to do it this way, it's maybe because I shouldn't do it...

Upvotes: 63

Views: 36391

Answers (4)

electron
electron

Reputation: 810

You can try adding new WPF User Control Item and change that to Window.

Add New Item->WPF->User Control

In XAML:

Change <UserControl> tag as <Window>

In CS:

Change base class from System.Windows.Controls.UserControl to System.Windows.Window.

Upvotes: 15

Florian Doyon
Florian Doyon

Reputation: 4186

Make sure the project type is WPF User Control Library when you create your project.

If it isn't then no sweat, just edit the csproj file and make sure the <ProjectTypeGuids> element under Project/PropertyGroup contain the following GUIDs

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

Also, make sure you reference PresentationFramework and System.Xaml in your project, or you will not get any WPF in your code.

Upvotes: 102

Viliam
Viliam

Reputation: 678

I do it this way: 1) create "WPF Application" 2) remove App.xaml 3) change Project properties -> Application Output type: to Class Library (originally there is Windows Application)

Otherwise you will get errors:

"Library project file cannot specify ApplicationDefinition element"

"The project file contains a property value that is not valid"

Upvotes: 8

Andy
Andy

Reputation: 30418

What do you mean that Visual Studio won't let you create a WPF window in a DLL project? Do you mean that if you right click the project, there is no option to add a Window there?

If that is the case, I think that means that you created a project type that isn't a WPF project type. I encountered something similar a while back when I wanted to upgrade a WinForms project to use WPF instead - see this question for more information.

Upvotes: 4

Related Questions