我有 WPF 应用程序,我想添加在命令行上执行操作的选项,而不是打开 GUI。
有没有办法在我的应用程序中获取命令行参数,并且万一有参数继续而不打开 GUI?
您可以编辑
App.xaml.cs
文件并覆盖 OnStartup
方法:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
string[] args = e.Args;
if(args.Length > 0 && args[0] == "cl")
{
//...
}
else
{
base.OnStartup(e);
Window2 mainWindow = new Window2();
mainWindow.Show();
}
}
}
您还应该从
StartupUri
文件的 <Application>
根元素中删除 App.xaml
属性。
但是如果您希望能够写入控制台,则需要手动创建控制台窗口:
然后您不妨在 Visual Studio 中创建一个控制台应用程序,然后根据命令行参数启动 WPF 应用程序,例如:
public class Program
{
public static void Main(string[] args)
{
if (args.Length == 0 || args[0] != "cl")
{
System.Diagnostics.Process.Start(@"c:\yourWpfApp.exe");
}
else
{
//...
}
}
}
控制台应用程序不是 WPF 应用程序,反之亦然。因此,创建两个不同的应用程序。
在您的
App.xaml.cs
中实现 OnStartup
方法。因此您可以访问通过命令行传递的参数。
protected override void OnStartup(StartupEventArgs e)
{
var args = e.Args;
// do anything with arguments
}