【发布时间】:2013-12-09 17:08:07
【问题描述】:
在编写 WinForms 应用程序时,我总是从一个空项目开始,然后添加一个应用程序类、表单等......这样做,我可以从头开始构建应用程序,保持它干净,没有所有“绒毛” "的标准 WinForms 项目,为您添加表单等。
我想对 WPF 做同样的事情。我已经创建了我的应用程序类,创建了一个 Window 类,我可以很好地运行该应用程序,但是没有与该窗口关联的 XAML,因为我只是将它声明为 Window 的派生类。
我的问题是,是否可以将 WPF -Windows 添加到 WinForms -Forms 之类的项目中,以便同时添加 XAML,并且可以使用设计器来布局控件等...?还是我必须使用罐装的“WPF 项目”并从那里开始?
显然不可能创建一个空项目并添加支持 XAML 的 Windows。如果有人知道为什么,我将不胜感激。 (但是,您可以创建以编程方式生成的窗口,或者如果您希望在默认 WPF 项目中拥有自己的启动对象,只需删除 App.xaml 并使用静态 Main() 添加您自己的类。) em>
class OrderEntry : System.Windows.Application
{
[STAThread]
static void Main(string[] commandLine)
{
OrderEntry app = new OrderEntry();
app.MainWindow = new WindowMain();
app.MainWindow.Show();
app.Run();
}
}
public partial class WindowMain : System.Windows.Window
{
}
工作正常,但 WindowMain 没有与之关联的 XAML。
【问题讨论】:
-
如果您需要创建 WPF 应用程序。使用
File -> New Project -> WPF Application.默认 WPF 项目是干净的。不要试图重新发明轮子。它已经被微软发明了,他们比我们任何人都清楚。 -
@user2942249 我不知道你所说的“魔法”是什么意思。只有1个
ApplicationDefinition,还有一个默认的Window,可以去掉。根本没有“魔法”。 -
@user2942249 没有这样的东西。
Application.Run()在PresentationFramework.dll中定义。 -
@user2942249 错误。
Main()方法在App.g.i.cs中生成,由App.xaml文件的Build Action自动生成。你为什么关心这些?如果您不想这样做,请完全删除App.xaml文件,然后自己定义Main()方法。 -
@user2942249 是的。我仍然看不到这样做的必要性。你正在浪费时间。