WPF: riga di comando

L'argomento della riga di comando è un meccanismo in cui un utente può passare un set di parametri o valori a un'applicazione WPF quando viene eseguita. Questi argomenti sono molto importanti per controllare un'applicazione dall'esterno, ad esempio, se vuoi aprire un documento di Word dal prompt dei comandi, puoi usare questo comando "C:\> start winword word1.docx"E si aprirà word1.docx documento.

Gli argomenti della riga di comando vengono gestiti nella funzione di avvio. Di seguito è riportato un semplice esempio che mostra come passare gli argomenti della riga di comando a un'applicazione WPF. Creiamo una nuova applicazione WPF con il nomeWPFCommandLine.

  • Trascina una casella di testo dalla casella degli strumenti alla finestra di progettazione.

  • In questo esempio, passeremo un percorso del file txt alla nostra applicazione come parametro della riga di comando.

  • Il programma leggerà il file txt e quindi scriverà tutto il testo nella casella di testo.

  • Il codice XAML seguente crea una casella di testo e la inizializza con alcune proprietà.

<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>
  • Ora iscriviti all'evento di avvio nel file App.xaml come mostrato di seguito.
<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>
  • Di seguito è riportata l'implementazione dell'evento app_Startup in App.xaml.cs che otterrà gli argomenti della riga di comando.

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; 
         } 
      } 
   } 
}
  • Ora, nella classe MainWindow, il programma aprirà il file txt e scriverà tutto il testo nella casella di testo.

  • Se viene rilevato un errore, il programma visualizzerà un messaggio di errore nella casella di testo.

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); 
         } 
      } 
   } 
}
  • Quando il codice precedente viene compilato ed eseguito, produrrà una finestra vuota con una casella di testo perché questo programma necessita di un argomento della riga di comando. Quindi Visual Studio fornisce un modo semplice per eseguire l'applicazione con i parametri della riga di comando.

  • Fare clic con il pulsante destro del mouse sul progetto WPF in Esplora soluzioni e selezionare le proprietà, verrà visualizzata la finestra seguente.

  • Seleziona l'opzione Debug e scrivi il percorso del file nell'argomento della riga di comando.

  • Crea un file txt con Test.txt e scrivi del testo in quel file e salvalo in qualsiasi posizione. In questo caso, il file txt viene salvato in "D:\" disco rigido.

  • Salva le modifiche nel tuo progetto e compila ed esegui la tua applicazione ora. Vedrai il testo in TextBox che il programma legge dal file Text.txt.

Ora proviamo a cambiare il nome del file sulla tua macchina da Test.txt per Test1.txt ed esegui nuovamente il programma, quindi vedrai quel messaggio di errore nella casella di testo.

Ti consigliamo di eseguire il codice sopra e seguire tutti i passaggi per eseguire correttamente la tua applicazione.