是否可以在控制台模式下启动WPF应用程序?
public partial class App : Application
{
public App()
{
InitializeComponent();
}
}
<Application x:Class="WPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</Application>
[STAThread]
static void Main(string[] args)
{
if (args.Length > 0)
{
switch (args[0].ToLower())
{
case "/g": RunApplication(); break;
}
}
}
private static void RunApplication()
{
var application = new System.Windows.Application();
application.Run(new App());
}
它将显示参数类型“ WPF.app”不可分配给参数类型“ System.Windows.Window”。
任何解决的办法吗?两者之间有什么不同
1.公共部分类应用程序:应用程序
2.公共局部类App:Window
您可以声明一个Window,然后以这种方式启动您的应用程序:
var application = new System.Windows.Application();
application.Run(new Window());
编辑:
您似乎有些困惑,所以让我解释一下:
假设您有一个程序:
using System;
namespace ConsoleApplication
{
class Program
{
[STAThread]
static void Main(string[] args)
{
RunApplication();
}
private static void RunApplication()
{
var application = new System.Windows.Application();
application.Run();
}
}
}
这将运行没有窗口的WPF应用程序。
另一方面,如果将Window传递给application.Run(),则将获得WPF窗口。App不应源自Window,因为它应源自Application。
Application.Run方法要么不带参数,要么不带窗口。它不需要应用程序。因此,如果要启动先前创建的应用程序(就像在那边一样),则应执行以下操作:
private static void RunApplication()
{
var application = new App();
application.Run(); // add Window if you want a window.
}
最后,如果您只想使用application.Run()
而不需要传递特定的Window,只需使用StartupUri在Application XAML中声明一个启动Window:
<Application x:Class="WPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="SomeWindow.xaml">
</Application>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句