Нет создания окна WPF в проекте DLL? - PullRequest
49 голосов
/ 26 августа 2010

Есть ли причина, по которой Visual Studio не позволяет мне создавать окно WPF в проекте DLL?

Я «решил» это, создав окно в проекте приложения и скопировав его в мой проект DLL. Я также обнаружил, что могу просто создать UserControl и изменить базовый класс на «Window».

Но если бы мне пришлось сделать это таким образом, возможно, потому что я не должен был делать это ...

Ответы [ 4 ]

79 голосов
/ 26 августа 2010

Убедитесь, что тип проекта WPF User Control Library при создании проекта.

Если это не так, не волнуйтесь, просто отредактируйте файл csproj и убедитесь, что элемент <ProjectTypeGuids> в Project/PropertyGroupсодержат следующие GUID

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

Кроме того, убедитесь, что вы ссылаетесь на PresentationFramework и System.Xaml в своем проекте, иначе вы не получите никакого WPF в своем коде.

8 голосов
/ 20 ноября 2017

Вы можете попробовать добавить новый элемент управления пользователя WPF и изменить его на Window.

Добавить новый элемент-> WPF-> Контроль пользователя

InXAML:

Изменить <UserControl> тег как <Window>

В CS:

Изменить базовый класс с System.Windows.Controls.UserControl на System.Windows.Window.

7 голосов
/ 01 декабря 2014

Я делаю это так: 1) создать «Приложение WPF» 2) удалить App.xaml 3) изменить свойства проекта -> Тип вывода приложения: на библиотеку классов (изначально есть приложение Windows)

В противном случае вы получите ошибки:

"В файле проекта библиотеки не может быть указан элемент ApplicationDefinition"

"Файл проекта содержит недопустимое значение свойства"

4 голосов
/ 26 августа 2010

Что вы имеете в виду, что Visual Studio не позволит вам создать окно WPF в проекте DLL? Вы имеете в виду, что если вы щелкнете правой кнопкой мыши по проекту, нет возможности добавить туда окно?

Если это так, я думаю, это означает, что вы создали тип проекта, который не является типом проекта WPF. Некоторое время назад я столкнулся с чем-то похожим, когда хотел обновить проект WinForms, чтобы вместо него использовать WPF - см. этот вопрос для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...