WPF - Linha de Comando

O argumento da linha de comando é um mecanismo onde um usuário pode passar um conjunto de parâmetros ou valores para um aplicativo WPF quando ele é executado. Esses argumentos são muito importantes para controlar um aplicativo de fora, por exemplo, se você deseja abrir um documento do Word a partir do prompt de comando, você pode usar este comando “C:\> start winword word1.docx”E vai abrir word1.docx documento.

Os argumentos da linha de comando são tratados na função de inicialização. A seguir está um exemplo simples que mostra como passar argumentos de linha de comando para um aplicativo WPF. Vamos criar um novo aplicativo WPF com o nomeWPFCommandLine.

  • Arraste uma caixa de texto da caixa de ferramentas para a janela de design.

  • Neste exemplo, passaremos um caminho de arquivo txt para nosso aplicativo como parâmetro de linha de comando.

  • O programa lerá o arquivo txt e escreverá todo o texto na caixa de texto.

  • O código XAML a seguir cria uma caixa de texto e a inicializa com algumas propriedades.

<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>
  • Agora, inscreva-se no evento Startup no arquivo App.xaml conforme mostrado abaixo.
<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 seguir está a implementação do evento app_Startup em App.xaml.cs que obterá os argumentos da linha de 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; 
         } 
      } 
   } 
}
  • Agora, na classe MainWindow, o programa irá abrir o arquivo txt e escrever todo o texto na caixa de texto.

  • Se algum erro for encontrado, o programa exibirá uma mensagem de erro na caixa 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); 
         } 
      } 
   } 
}
  • Quando o código acima é compilado e executado, ele produzirá uma janela em branco com uma caixa de texto porque este programa precisa de um argumento de linha de comando. Portanto, o Visual Studio fornece uma maneira fácil de executar seu aplicativo com parâmetros de linha de comando.

  • Clique com o botão direito do mouse em seu projeto WPF no explorador de soluções e selecione propriedades. A janela a seguir será exibida.

  • Selecione a opção Debug e escreva o caminho do arquivo no argumento da linha de comando.

  • Crie um arquivo txt com Test.txt e escreva algum texto nesse arquivo e salve-o em qualquer local. Neste caso, o arquivo txt é salvo em “D:\" disco rígido.

  • Salve as alterações em seu projeto, compile e execute seu aplicativo agora. Você verá o texto em TextBox que o programa lê do arquivo Text.txt.

Agora vamos tentar mudar o nome do arquivo em sua máquina de Test.txt para Test1.txt e execute seu programa novamente, então você verá aquela mensagem de erro na caixa de texto.

Recomendamos que você execute o código acima e siga todas as etapas para executar seu aplicativo com sucesso.