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.