This article has been localized into French by the community.
Les paramètres en ligne de commandes en WPF
Les paramètres en ligne de commande sont une technique où vous pouvez passer un lot de paramètres à l'application que vous souhaitez lors du démarrage, afin d'influencer celui-ci. L'exemple le plus commun est d'ouvrir l'application avec un fichier spécifique, par exemple, dans un éditeur. Vous pouvez essayer ceci par vous-même avec l'application Bloc-notes inclue dans Windows, en lançant la ligne de commande suivante (sélectionnez Exécuter depuis le menu Démarrer ou avec le raccourci clavier suivant : [Clé Windows + R]) :
notepad.exe C:\Windows\win.ini
Cela va ouvrir le Bloc-notes avec le fichier win.ini déjà ouvert (vous devrez peut-être ajuster le chemin d'accès afin qu'il corresponde à votre système). Le Bloc-notes regarde simplement s'il existe un ou plusieurs paramètres et les utilise ensuite et votre application peut faire la même chose !
Les paramètres en ligne de commande sont transmis à votre application WPF au moyen de l'événement Startup, que nous abordons dans l'article App.xaml. Nous allons faire la même chose dans cet exemple, et ensuite utiliser la valeur transmise au moyen des arguments de la méthode. Premièrement, le fichier App.xaml :
<Application x:Class="WpfTutorialSamples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources></Application.Resources>
</Application>
Tout ce que nous faisons ici est de s'abonner à l'événement Startup, ce qui remplace la propriété StartupUri. L'événement est ensuite implémenté dans App.xaml.cs :
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MainWindow wnd = new MainWindow();
if(e.Args.Length == 1)
MessageBox.Show("Now opening file: \n\n" + e.Args[0]);
wnd.Show();
}
}
}
Le type StartupEventArgs est ce que nous utilisons ici. Il est transmis via l'événement Application Startup, avec le nom e. Il possède la propriété Args, qui est un tableau de chaines de caractères. Les paramètres en ligne de commande sont séparés par des espaces, à moins que l'espace se situe dans une chaine entourée de guillemets.
Tester le paramètre de ligne de commande
Si vous lancez l'exemple ci-dessus, rien ne se passera, car aucun paramètre en ligne de commande n'a été spécifié. Heureusement, Visual Studio permet d'en créer facilement afin de tester votre application. Depuis le menu Projet, sélectionnez "Propriétés de [Nom du projet]" puis allez à l'onglet Debug, où vous pouvez définir un paramètre de ligne de commande. Cela devrait ressembler à cela :
Essayez de lancer l'application et vous verrez qu'elle répondra à votre paramètre.
Bien sûr, le message n'est pas vraiment utile. Vous pourriez au lieu de cela tout aussi bien vouloir le transmettre au constructeur de votre fenêtre principale ou appeler une méthode publique d'ouverture dans l'application, comme cela :
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MainWindow wnd = new MainWindow();
// The OpenFile() method is just an example of what you could do with the
// parameter. The method should be declared on your MainWindow class, where
// you could use a range of methods to process the passed file path
if(e.Args.Length == 1)
wnd.OpenFile(e.Args[0]);
wnd.Show();
}
}
}
Les possibilités de la ligne de commande
Dans cet exemple, nous testons s'il y a exactement un argument et si c'est le cas, nous l'utilisons en tant que nom de fichier. Dans un exemple de la vie réelle, vous pourriez collecter divers arguments et même les utiliser pour des options, par exemple pour activer ou désactiver une certaine fonctionnalité. Dans cet exemple, vous pourriez faire cela en analysant chaque argument transmis pendant la collection des informations dont vous aviez besoin pour travailler avec votre application, mais cela dépasse le cadre de cet article.