WPF - Ligne de commande

L'argument de ligne de commande est un mécanisme dans lequel un utilisateur peut transmettre un ensemble de paramètres ou de valeurs à une application WPF lors de son exécution. Ces arguments sont très importants pour contrôler une application de l'extérieur, par exemple, si vous souhaitez ouvrir un document Word à partir de l'invite de commande, vous pouvez utiliser cette commande "C:\> start winword word1.docx"Et il s'ouvrira word1.docx document.

Les arguments de ligne de commande sont gérés dans la fonction de démarrage. Voici un exemple simple qui montre comment passer des arguments de ligne de commande à une application WPF. Créons une nouvelle application WPF avec le nomWPFCommandLine.

  • Faites glisser une zone de texte de la boîte à outils vers la fenêtre de conception.

  • Dans cet exemple, nous passerons un chemin de fichier txt à notre application en tant que paramètre de ligne de commande.

  • Le programme lira le fichier txt puis écrira tout le texte dans la zone de texte.

  • Le code XAML suivant crée une zone de texte et l'initialise avec certaines propriétés.

<Window x:Class = "WPFCommandLine.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   xmlns:local = "clr-namespace:WPFCommandLine" 
   mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "525"> 
	
   <Grid> 
      <TextBox x:Name = "textBox" HorizontalAlignment = "Left"  
         Height = "180" Margin = "100" TextWrapping = "Wrap" 
         VerticalAlignment = "Top" Width = "300"/> 
   </Grid> 
	
</Window>
  • Maintenant, abonnez-vous à l'événement de démarrage dans le fichier App.xaml comme indiqué ci-dessous.
<Application x:Class = "WPFCommandLine.App" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:local = "clr-namespace:WPFCommandLine" 
   StartupUri = "MainWindow.xaml" Startup = "app_Startup"> 
	
   <Application.Resources> 
          
   </Application.Resources>
	
</Application>
  • Vous trouverez ci-dessous l'implémentation de l'événement app_Startup dans App.xaml.cs qui obtiendra les arguments de la ligne de commande.

using System.Windows;
  
namespace WPFCommandLine { 
   /// <summary> 
      /// Interaction logic for App.xaml 
   /// </summary> 
	
   public partial class App : Application { 
      public static string[] Args;
		
      void app_Startup(object sender, StartupEventArgs e) { 
         // If no command line arguments were provided, don't process them 
         if (e.Args.Length == 0) return;
			
         if (e.Args.Length > 0) { 
            Args = e.Args; 
         } 
      } 
   } 
}
  • Maintenant, dans la classe MainWindow, le programme ouvrira le fichier txt et écrira tout le texte sur la zone de texte.

  • S'il y a une erreur trouvée, le programme affichera un message d'erreur sur la zone de texte.

using System; 
using System.IO; 
using System.Windows;  

namespace WPFCommandLine { 

   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
         String[] args = App.Args;
			
         try {
            // Open the text file using a stream reader. 
            using (StreamReader sr = new StreamReader(args[0])) { 
               // Read the stream to a string, and write  
               // the string to the text box 
               String line = sr.ReadToEnd(); 
               textBox.AppendText(line.ToString()); 
               textBox.AppendText("\n"); 
            } 
         } 
         catch (Exception e) { 
            textBox.AppendText("The file could not be read:"); 
            textBox.AppendText("\n"); 
            textBox.AppendText(e.Message); 
         } 
      } 
   } 
}
  • Lorsque le code ci-dessus est compilé et exécuté, il produira une fenêtre vide avec une zone de texte car ce programme a besoin d'un argument de ligne de commande. Ainsi, Visual Studio fournit un moyen simple d'exécuter votre application avec des paramètres de ligne de commande.

  • Cliquez avec le bouton droit sur votre projet WPF dans l'explorateur de solutions et sélectionnez les propriétés, il affichera la fenêtre suivante.

  • Sélectionnez l'option Déboguer et écrivez le chemin du fichier dans l'argument de ligne de commande.

  • Créez un fichier txt avec Test.txt et écrivez du texte dans ce fichier et enregistrez-le à n'importe quel emplacement. Dans ce cas, le fichier txt est enregistré sur "D:\" disque dur.

  • Enregistrez les modifications dans votre projet et compilez et exécutez votre application maintenant. Vous verrez le texte dans TextBox que le programme lit à partir du fichier Text.txt.

Essayons maintenant de changer le nom du fichier sur votre machine de Test.txt à Test1.txt et exécutez à nouveau votre programme, vous verrez alors ce message d'erreur dans la zone de texte.

Nous vous recommandons d'exécuter le code ci-dessus et de suivre toutes les étapes pour exécuter votre application avec succès.