WPF - Автоматическое отключение Main в App.g.cs

StackOverflow https://stackoverflow.com/questions/1052868

  •  20-08-2019
  •  | 
  •  

Вопрос

Я изучаю WPF.

Я хочу предоставить свой собственный основной метод в моем App.xaml.cs вместо того, чтобы создавать его для меня в App.g.cs.Однако я продолжаю получать конфликты, потому что я не выяснил, как остановить создание дополнительного основного.

Есть ли параметр в моем файле проекта или где-либо еще, который управляет этим?

Это было полезно?

Решение

Я нашел ответ здесь. http://learnwpf.com/post/2007/12/13/How-can-I-provide-my-own-Main%28%29-method-in-my-WPF-application.aspx

Это так:

WPF знает, как создать метод Main() для конкретного файла xaml, с помощью свойства build action, установленного для App.xaml - у него есть действие сборки ApplicationDefinition .Изменив это на Page, WPF не создаст основной метод, и вы можете предоставить свой собственный в обычном файле класса, который вы добавляете в проект.

Однако в комментариях к вышеупомянутому блогу в комментарии отмечается, что могут возникнуть проблемы с blend и ссылками на него: http://blogs.msdn.com/expression/archive/2008/04/09/creating-a-wpf-blend-project-that-loads-resources-in-code.aspx .Я еще не до конца понимаю эти проблемы.

Другие советы

Вы также можете просто создать отдельный класс (например, Entry), который отвечает за загрузку вашего приложения.Затем перейдите в настройки проекта и установите для вашего объекта запуска значение Entry.Таким образом, вам даже не нужно отключать автоматически сгенерированный метод.

Самый простой способ - установить действие сборки в окне Свойств из ApplicationDefinition в Page для App.Xaml.

Затем вы можете определить свою собственную точку входа.

Я нашел решение:

  1. Скопируйте данные из вашего файла app.xaml
  2. Удалите файл app.xaml и создайте заново с тем же именем
  3. Создайте метод `main` в файле .cs и вставьте в него свой старый скопированный код

Один из способов - отказаться от определения производного от приложения класса в XAML, чтобы вы могли вручную определить основной метод в соответствии с вашими пользовательскими требованиями

Самый простой способ - просто создайте класс, подобный Startup.cs, с помощью build action для компиляции и удалите ApplicationDefinition из App.xaml, преобразуйте его в page и удалите его из любого другого файла в приложении

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top