TOC

This article has been localized into Portuguese by the community.

Uma aplicação WPF:

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.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!