15

我正在学习WPF。

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

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

4

6 回答 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 方法,您可以在添加到项目的常规类文件中提供自己的方法。

然而,在对上述博客的评论中,一条评论指出混合可能存在问题,它引用了:http: //blogs.msdn.com/expression/archive/2008/04/09/creating-a-wpf-blend-加载资源的项目代码.aspx。我还没有完全理解这些问题。

于 2009-06-27T14:34:03.077 回答
7

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

于 2009-06-27T18:02:14.877 回答
1

最简单的方法是将“属性”窗口中的“生成操作”从 ApplicationDefinition 设置为 App.Xaml 的页面。

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

于 2010-08-27T13:21:49.623 回答
0

我找到了一个解决方案:

  1. 从 app.xaml 文件中复制数据
  2. 删除 app.xaml 文件并重新创建同名文件
  3. 在 .cs 文件中创建 `main` 方法,并将您复制的旧代码粘贴到其中
于 2012-04-02T06:48:06.173 回答
0

一种方法是放弃在 XAML 中定义应用程序派生类,因此您可以根据自定义要求手动定义 Main 方法

于 2013-10-08T13:56:28.287 回答
0

简单的方法只需创建一个像 Startup.cs 这样的类,并使用构建操作来编译并从 App.xaml 中删除 ApplicationDefinition 将其转换为页面并将其从应用程序中的任何其他文件中删除

于 2016-05-18T10:01:57.270 回答