【发布时间】:2010-11-06 09:00:35
【问题描述】:
我正在学习 WPF。
我想在我的 App.xaml.cs 中提供我自己的 Main 方法,而不是在 App.g.cs 中为我生成一个。但是我不断遇到冲突,因为我还没有找到如何阻止额外的 Main 生成。
我的项目文件或其他地方是否有设置可以控制这个?
【问题讨论】:
我正在学习 WPF。
我想在我的 App.xaml.cs 中提供我自己的 Main 方法,而不是在 App.g.cs 中为我生成一个。但是我不断遇到冲突,因为我还没有找到如何阻止额外的 Main 生成。
我的项目文件或其他地方是否有设置可以控制这个?
【问题讨论】:
它是:
WPF 知道为特定 xaml 文件创建 Main() 方法的方式是通过为 App.xaml 设置的构建操作属性 - 它具有 ApplicationDefinition 的构建操作。通过将此更改为 Page WPF 不会创建 Main 方法,您可以在添加到项目的常规类文件中提供自己的方法。
然而,在上述博客的 cmets 中,一条评论指出混合可能存在问题,并引用:http://blogs.msdn.com/expression/archive/2008/04/09/creating-a-wpf-blend-project-that-loads-resources-in-code.aspx。我还没有完全理解这些问题。
【讨论】:
您也可以只创建一个单独的类(例如,Entry),它负责引导您的应用程序。然后转到项目设置并将您的启动对象设置为Entry。这样您甚至不必禁用自动生成的方法。
【讨论】:
最简单的方法是将“属性”窗口中的“构建操作”从 ApplicationDefinition 设置为 App.Xaml 的页面。
然后你可以定义你自己的入口点。
【讨论】:
我找到了解决办法:
【讨论】:
一种方法是放弃在 XAML 中定义应用程序派生类,因此您可以根据自定义要求手动定义 Main 方法
【讨论】:
简单的方法是创建一个像 Startup.cs 这样的类,并使用构建操作进行编译 并从 App.xaml 中删除 ApplicationDefinition 将其转换为页面 并将其从应用程序的任何其他文件中删除
【讨论】: