Нет создания окна WPF в DLL-проекте?
Есть ли причина, по которой Visual Studio не позволит мне создать окно WPF в проекте DLL?
Я "решил" его, создав окно в Application Project и скопировав его в свой проект DLL.
Я также обнаружил, что могу просто создать UserControl и изменить базовый класс на "Window".
Но если бы мне пришлось это делать, возможно, потому, что я не должен этого делать...
Ответы
Ответ 1
Убедитесь, что тип проекта 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 в своем коде.
Ответ 2
Я делаю так:
1) создать "приложение WPF"
2) удалить App.xaml
3) изменить Свойства проекта → Тип вывода приложения: в библиотеку классов (первоначально это приложение Windows)
В противном случае вы получите ошибки:
"Файл проекта библиотеки не может указывать элемент ApplicationDefinition"
"Файл проекта содержит недопустимое значение свойства"
Ответ 3
Вы можете попробовать добавить новый элемент управления WPF и изменить его на Window.
Добавить элемент Item- > WPF- > User Control
В XAML:
Измените тег <UserControl>
как <Window>
В CS:
Измените базовый класс от System.Windows.Controls.UserControl
до System.Windows.Window
.
Ответ 4
Что значит, что Visual Studio не позволит создать окно WPF в DLL-проекте? Вы имеете в виду, что если вы щелкните правой кнопкой мыши проект, нет возможности добавить туда окно?
Если это так, я думаю, это означает, что вы создали тип проекта, который не является типом проекта WPF. Я столкнулся с чем-то подобным, когда я хотел обновить проект WinForms, чтобы использовать WPF вместо этого - см. этот вопрос для получения дополнительной информации.