This article has been localized into Portuguese by the community.
Parâmetros de linha de comando no WPF
Parâmetros de linha de comando é uma técnica onde você pode passar um conjunto de parâmetros para uma aplicação que você deseja iniciar, para de alguma forma influenciá-la. O exemplo mais comum é fazer a aplicação abrir um arquivo específico, por exemplo um editor. Você poe experimentar você mesmo com a aplicação Notepad embutida no Windows, ao executar (selecione Executar no menu iniciar ou pressione [WindowsKey+R]):
notepad.exe c:\Windows\win.ini
Isso abrirá o Notepad com o arquivo win.ini aberto (você pode ajustar o caminho de acordo com seu sistema). O Notepad simplesmente procura por um dos diversos parâmetros e então usa-o e sua aplicação pode fazer o mesmo!
Os parâmetros de linha de comando são passados para sua aplicação WPF através do evento Startup, que nós assinamos no artigo App.xaml. Nos faremos a mesma coisa neste exemplo, e então use o valor passado através dos argumentos do método. Primeiro, o arquivo App.xaml:
<Application x:Class="WpfTutorialSamples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources></Application.Resources>
</Application>
Tudo que fizemos aqui foi assinar o evento Startup, substituíndo a propriedade StartupUri. O evento então é implementado no App.xaml.cs:
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MainWindow wnd = new MainWindow();
if(e.Args.Length == 1)
MessageBox.Show("Now opening file: \n\n" + e.Args[0]);
wnd.Show();
}
}
}
O StartupEventArgs é o que usamos aqui. Ele é passado para o evento Startup dentro da Application, com o nome e. Ele tem a propriedade Args, que é um array de strings. Os parâmetros de linha de comando são separados por espaços, a menos que o espaço esteja entre aspas.
Testando o parâmetro de linha de comando
Se você rodar o exemplo abaixo, nada irá acontecer, porque nenhum parâmetro de linha de comando foi especificado. Felizmente, o Visual Studio torna isso fácil de testar na sua aplicação. No menu Project escolha "[Nome do projeto] properties" e então vá para a guia Debug, onde você pode definir um parâmetro de linha de comando. Será algo parecido com isso:
Experimente rodar a aplicação e você verá ela responder ao seu parâmetro.
Claro, a mensagem não é extremamente útil. Você pode preferir ao invés disso passá-la pelo construtor de sua janela principal ou chamar um método público para Abrir nele, como este:
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
MainWindow wnd = new MainWindow();
// The OpenFile() method is just an example of what you could do with the
// parameter. The method should be declared on your MainWindow class, where
// you could use a range of methods to process the passed file path
if(e.Args.Length == 1)
wnd.OpenFile(e.Args[0]);
wnd.Show();
}
}
}
Possibilidades de linha de comando
Neste exemplo, nós testamos se existe exatamente um argumento e se sim, nós usamos ele com um nome de arquivo. Um exemplo no mundo real, você pode coletar vários argumentos e então usá-los para opções, por exemplo modificando uma certa feature para ligada ou desligada. Se você quiser faça isso através de um loop em toda a lista de argumentos passados coletando as informações que você precisa processar, mas isso vai além do escopo deste artigo.