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

发布于 2024-07-25 13:30:03 字数 155 浏览 5 评论 0原文

我正在学习WPF。

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

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

I'm learning WPF.

I want to provide my own Main method in my App.xaml.cs rather than getting one generated for me in App.g.cs. However I keep getting conflicts because I haven't found out how to stop an additional Main from being generated.

Is there a setting in my project file or elsewhere that controls this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

如日中天 2024-08-01 13:30:03

我在这里找到了答案。

是:

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

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

I found the answer here. http://learnwpf.com/post/2007/12/13/How-can-I-provide-my-own-Main%28%29-method-in-my-WPF-application.aspx

It is:

The way WPF knows to create the Main() method for a particular xaml file is through the build action property set for App.xaml - it has a build action of ApplicationDefinition. By changing this to Page WPF won't create the Main method and you can provide your own in a regular class file you add to the project.

However in the comments to the above blog, a comment notes there may be issues with blend and it references: http://blogs.msdn.com/expression/archive/2008/04/09/creating-a-wpf-blend-project-that-loads-resources-in-code.aspx . I don't fully understand the issues yet.

緦唸λ蓇 2024-08-01 13:30:03

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

You can also just create a separate class (for example, Entry) which is responsible for bootstrapping your application. Then go to project settings and set your startup object to Entry. That way you don't even have to disable the autogenerated method.

蘑菇王子 2024-08-01 13:30:03

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

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

The easiest way is to set the Build Action in the Properties window from ApplicationDefinition to Page for App.Xaml.

Then you can define your own entry point.

染柒℉ 2024-08-01 13:30:03

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

One way is to forgo defining an Application-derived class in XAML, so you can manually define the Main method with your custom requirement

旧城烟雨 2024-08-01 13:30:03

我找到了一个解决方案:

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

I found a solution:

  1. Copy the data from your app.xaml file
  2. Delete app.xaml file and re-create with the same name
  3. Create `main` method in .cs file, and paste your old copied code into it
偏爱你一生 2024-08-01 13:30:03

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

The Easy way just create a class like Startup.cs with build action to compile
and remove ApplicationDefinition from App.xaml convert that to page
and remove it from any other file in the application

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文