97 votes

Ligne de commande WPF

J'essaie de créer une application WPF qui accepte les arguments de la ligne de commande. Si aucun argument n'est fourni, la fenêtre principale doit s'afficher. Dans le cas de certains arguments de ligne de commande spécifiques, le code devrait être exécuté sans interface graphique et sortir une fois terminé. Toute suggestion sur la manière de procéder serait la bienvenue.

156voto

Matt Hamilton Points 98268

Tout d'abord, trouvez cet attribut en haut de votre fichier App.xaml et supprimez-le :

StartupUri="Window1.xaml"

Cela signifie que l'application ne va pas automatiquement instancier votre fenêtre principale et l'afficher.

Ensuite, remplacez la méthode OnStartup dans votre classe App pour exécuter la logique :

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);

    if ( /* test command-line params */ )
    {
        /* do stuff without a GUI */
    }
    else
    {
        new Window1().ShowDialog();
    }
    this.Shutdown();
}

26voto

GeekyMonkey Points 5036

Pour vérifier l'existence de votre argument - dans la solution de Matt, utilisez ceci pour votre test :

e.Args.Contains("MyTriggerArg")

1voto

Vous pouvez utiliser les éléments ci-dessous dans app.xaml.cs fichier :

private void Application_Startup(object sender, StartupEventArgs e)
{
    MainWindow WindowToDisplay = new MainWindow();

    if (e.Args.Length == 0)
    {
        WindowToDisplay.Show();
    }
    else
    {
        string FirstArgument = e.Args[0].ToString();
        string SecondArgument = e.Args[1].ToString();
        //your logic here
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X