WPF应用程序命令行参数而不是启动GUI

时间:2017-06-22 10:37:35

标签: wpf command-line mahapps.metro

我有WPF个应用程序,我想添加选项以在推荐行中执行我的操作,而不是打开GUI

发送Application exe arguments的任何方式,如果arguments length in > 0继续command line而不是打开GUI

2 个答案:

答案 0 :(得分:2)

您可以编辑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属性。

但是如果你想能够写入控制台,你需要手动创建一个控制台窗口:

No output to console from a WPF application?

然后你也可以在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应用程序,反之亦然。因此,创建两个不同的应用程序。

答案 1 :(得分:1)

App.xaml.cs中实施OnStartup方法。因此,您可以访问通过命令行传递的参数。

protected override void OnStartup(StartupEventArgs e)
{
    var args = e.Args;
    // do anything with arguments
}