2010-08-26 2 views
37

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

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

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

ответ

66

Убедитесь, что тип проекта 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 в своем коде.

+0

Здравствуйте, Florian, Спасибо за ваш ответ, я действительно ошибся в проекте и использовал «Class Library». : -s –

+6

В настоящее время в .NET 4+ System.Xaml также требуется вместе с PresentationFramework. – Phil

4

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

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

+1

Привет, Спасибо за ваш ответ, я действительно ошибся в проекте и использовал «Class Library». : -s –

6

я сделать это таким образом: 1) создать "WPF Application" 2) удалить app.xaml свойства 3) Изменение проекта -> Тип выхода Применение: для библиотеки классов (изначально есть приложение Windows)

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

«Библиотека файл проекта не может указать ApplicationDefinition элемент»

«файл проекта содержит значение свойства, которое не является действительным»

1

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

Добавить item-> WPF-> Контроль пользователя

В XAML:

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

В CS:

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

Смежные вопросы