WPF: línea de comandos

El argumento de la línea de comandos es un mecanismo mediante el cual un usuario puede pasar un conjunto de parámetros o valores a una aplicación WPF cuando se ejecuta. Estos argumentos son muy importantes para controlar una aplicación desde el exterior, por ejemplo, si desea abrir un documento de Word desde el símbolo del sistema, entonces puede usar este comando "C:\> start winword word1.docx"Y se abrirá word1.docx documento.

Los argumentos de la línea de comandos se manejan en la función de inicio. A continuación, se muestra un ejemplo simple que muestra cómo pasar argumentos de línea de comando a una aplicación WPF. Creemos una nueva aplicación WPF con el nombreWPFCommandLine.

  • Arrastre un cuadro de texto desde la caja de herramientas a la ventana de diseño.

  • En este ejemplo, pasaremos una ruta de archivo txt a nuestra aplicación como parámetro de línea de comando.

  • El programa leerá el archivo txt y luego escribirá todo el texto en el cuadro de texto.

  • El siguiente código XAML crea un cuadro de texto y lo inicializa con algunas propiedades.

<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>
  • Ahora suscriba el evento de inicio en el archivo App.xaml como se muestra a continuación.
<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>
  • A continuación se muestra la implementación del evento app_Startup en App.xaml.cs que obtendrá los argumentos de la línea de comandos.

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; 
         } 
      } 
   } 
}
  • Ahora, en la clase MainWindow, el programa abrirá el archivo txt y escribirá todo el texto en el cuadro de texto.

  • Si se encuentra algún error, el programa mostrará un mensaje de error en el cuadro de texto.

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); 
         } 
      } 
   } 
}
  • Cuando el código anterior se compila y ejecuta, producirá una ventana en blanco con un cuadro de texto porque este programa necesita un argumento de línea de comando. Por tanto, Visual Studio proporciona una forma sencilla de ejecutar su aplicación con parámetros de línea de comandos.

  • Haga clic con el botón derecho en su proyecto WPF en el explorador de soluciones y seleccione propiedades, se mostrará la siguiente ventana.

  • Seleccione la opción Depurar y escriba la ruta del archivo en el argumento de la línea de comandos.

  • Cree un archivo txt con Test.txt y escriba algo de texto en ese archivo y guárdelo en cualquier ubicación. En este caso, el archivo txt se guarda en "D:\" disco duro.

  • Guarde los cambios en su proyecto y compile y ejecute su aplicación ahora. Verá el texto en TextBox que el programa lee del archivo Text.txt.

Ahora intentemos cambiar el nombre del archivo en su máquina de Test.txt a Test1.txt y ejecute su programa nuevamente, luego verá ese mensaje de error en el cuadro de texto.

Le recomendamos que ejecute el código anterior y siga todos los pasos para ejecutar su aplicación con éxito.