WPF - 关闭 App.g.cs 中 Main 方法的自动生成

15

我正在学习WPF。

我想要在App.xaml.cs中提供自己的Main方法,而不是在App.g.cs中生成一个Main方法。然而,由于我没有找到如何阻止生成额外Main方法的方法,因此我一直遇到冲突。

我的项目文件或其他地方是否有控制这个的设置?

6个回答

18

我在这里找到了答案。 http://learnwpf.com/post/2007/12/13/How-can-I-provide-my-own-Main%28%29-method-in-my-WPF-application.aspx

具体方法如下:

WPF 知道为特定的 XAML 文件创建 Main() 方法是通过为 App.xaml 设置的构建操作属性来实现的 - 它具有 ApplicationDefinition 的构建操作类型。将其更改为 Page 后,WPF 将不会创建 Main 方法,您可以在项目中添加的常规类文件中提供自己的 Main 方法。

然而,在上述博客的评论中,有一条评论指出可能存在与 Blend 相关的问题,引用了以下链接:http://blogs.msdn.com/expression/archive/2008/04/09/creating-a-wpf-blend-project-that-loads-resources-in-code.aspx。我还没有完全理解这个问题。


7

您也可以创建一个单独的类(例如Entry),负责引导您的应用程序。然后转到项目设置并将启动对象设置为Entry。这样,您甚至不必禁用自动生成的方法。


这似乎是最干净的方法,我想知道有没有任何缺点? - Vidar

1

最简单的方法是将应用程序定义(App.Xaml)文件的“生成操作”(Build Action)从ApplicationDefinition设置为Page。

然后,您可以定义自己的入口点。


1
一种方法是在XAML中放弃定义一个派生自Application的类,这样你就可以手动定义具有自定义要求的Main方法。

0

简单的方法是创建一个类,例如Startup.cs,并将其构建操作设置为编译, 然后从App.xaml中删除ApplicationDefinition并将其转换为页面, 最后从应用程序的任何其他文件中删除它。


0

我找到了一个解决方案:

  1. 复制您的 app.xaml 文件中的数据
  2. 删除 app.xaml 文件,并使用相同的名称重新创建
  3. 在 .cs 文件中创建 `main` 方法,并将旧代码粘贴到其中

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接