У меня есть побочный проект, который я написал несколько лет назад в WinForms. Чтобы лучше помочь мне изучить WPF, я хотел бы переписать его в WPF. В идеале я хотел бы просто изменить текущий проект, который у меня есть, и переписать пользовательский интерфейс в WPF вместо создания нового проекта.
У меня проблемы с этим. Я сделал следующее (используя Visual Studio 2008 SP1):
- Изменена целевая платформа с 2.0 до 3.5.
- Добавлены ссылки PresentationCore, PresentationFramework и WindowsBase.
В этот момент я заметил, что что-то не так. Когда я щелкнул правой кнопкой мыши по проекту и выбрал Add | Новый элемент, у меня не было возможности создать окно WPF - единственным WPF-классом, который я мог бы создать, является пользовательский элемент управления WPF. Поскольку у меня были некоторые другие проекты WPF, я скопировал App.xaml. * И Window1.xaml. * Из этого проекта в мой и обновил их по мере необходимости (в основном просто меняя пространство имен этого проекта на пространство имен моего проекта).
Затем я удалил Program.cs(который ранее содержал метод Main, который отображал основную форму WinForm) и построил проект. У меня есть ошибка, указывающая, что метода Main нет.
Кажется, что внутренне Visual Studio знает, что этот проект действительно является приложением WinForms, а не WPF-приложением. В проекте WPF (созданном при выборе "WPF Application" ) в свойствах приложения я могу установить экземпляр класса Application в качестве начального объекта. В моем проекте, преобразованном в WinForms, это не вариант.
Я быстро просмотрел файл .csproj в текстовом редакторе, но я не смог найти ничего, что могло бы сказать Visual Studio, что проект действительно WinForms, а не WPF.
Что еще мне нужно сделать, чтобы превратить проект WinForms в "настоящий" проект WPF? У меня есть опция, отличная от создания нового проекта и просто замена моего текущего проекта?
Обновление:. Я более подробно рассмотрел файлы .csproj, и я заметил, что App.xaml был добавлен как страница:
<Page Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
Однако в моем другом проекте WPF это ApplicationDefinition. Как только я изменил это, я мог бы установить экземпляр приложения как объект запуска, и мое приложение запустится. Тем не менее, у меня все еще нет возможности создавать какие-либо типы WPF, кроме пользовательских элементов управления.