TOC

This article is currently in the process of being translated into Hungarian (~98% done).

Egy WPF alkalmazás:

Command-line parameters in WPF

A parancssori paraméterek alkalmazásával paraméter készletet adhatunk át az alkalmazásnak amit szeretnénk futtatni, annak érdekében hogy befolyásoljuk az alkalmazás paramétereit. Egy példa, amit gyakran alkalmaznak a fejlesztők, hogy az alkalmazásnak induláskor megadunk egy file elérhetőséget, amit az alkalmazásnak meg kell nyitnia induláskor, például szöveg szerkesztő stb. Kipróbálhatjuk ezt a beépített Windows Notepad alkalmazással (futtathatjuk A Start menüből a Run menüpont kiválasztásával, vagy nyomjuk meg a [WindowsKey-R] billentyű kombinációt):

notepad.exe c:\Windows\win.ini

Ez megnyitja a Notepad alkalmazást, benne a Win.ini tartalmával (lehetséges, hogy a file megfelelő elérhetőségéhez az utat be kell állítani a rendszerben). A Notepad egyszerűen olvassa a bemenő paramétert vagy paramétereket és alkalmazza azokat. A programozó által létrehozott alkalmazások ugyanezt tehetik.

A parancssori paramétereket a WPF alkalmazásban a Startup eseményen keresztül töltődnek fel, amire bejelentkezhetünk az App.xaml file-ban található programkódon keresztül. A következő példában azt láthatjuk, hogy az átadott paraméterek értékeit felhasználjuk egy metódus argumentumaként. Elsőként az App.xaml file:

<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>

Annyit kell csak tennünk hogy bejelentkezünk a Startup eseményre, felcserélve ezzel a StartupUri tulajdonságot. Az eseménykezelő megvalósítása az App.xaml.cs file-ban található:

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();
		}
	}
}

A StartupEventArgs esemény az amit a példában alkalmazunk. Ez betöltődik a Application Startup eseménykezelőbe mint esemény, e névvel. A tulajdonsága Args, ami egy sztringekből álló tömb. A parancssori paraméterek szóközzel vannak elválasztva, kivéve ahol a szóköz a sztring része,

A parancssori paraméterek tesztelése

A fenti kódrészlet futtatása után látható hogy nem történik semmi, mivel a parancssori paraméterek még nem lettek megadva. Szerencsére a Visual Studio fejlesztő környezetben egyszerűen tesztelhetjük az alkalmazást parancssori paraméterek megadásával. A Project menüben válasszuk ki a "[Project name] properties" menüpontot és menjünk a Debug fülre, ahol megadhatjuk a teszteléshez a parancssori paramétereket. Ez a következőképpen néz ki:

Próbáljuk futtatni az alkalmazást és láthatjuk, hogy az válaszol a beállított parancssori paraméterekre.

Persze az üzenet nem különösebben hasznos, ehelyett szükségünk lehet arra hogy a paramétereket átadjuk a fő ablak konstruktor metódusának, vagy meghívjunk egy publikus nyitó metódust, mint az alábbiakban:

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();
		}
	}
}

Parancssori paraméterek alkalmazásának lehetőségei

A példában ellenőríztük, hogy egy és csakis egy bemenő paraméter szerepel, és ha igen akkor azt file-névként értelmeztük és alkalmaztuk. A valóságban szükséges, hogy akár több paramétert is beolvassunk és alkalmazzunk, akár opcionálisan, például bizonyos tulajdonságokat ki- illetve bekapcsoljunk. Ezt megtehetjük úgy, hogy egy ciklusban olvassuk a megadott paramétereket és csak azokat a paramétereket gyűjtjük össze melyek számunkra szükségesek. Persze ennek a lehetőségnek a részletezése, bemutatása kívül esik ennek a dokumentumnak a keretein:

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!