This article is currently in the process of being translated into Finnish (~96% done).
Command-line parameters in WPF
Komentoriviparametrit ovat tekniikka, jossa voit välittää joukon parametreja sovellukselle, jonka haluat käynnistää, vaikuutaaksesi siihen jollain tavalla. Yleisin esimerkki on saada sovellus avautumaan tietyllä tiedostolla, esimerkiksi editorissa. Voit kokeilla tätä itse Windowsin sisäänrakennetulla Notepad-sovelluksella suorittamalla (valitse Käynnistä-valikosta Suorita tai paina [WindowsKey-R]):
notepad.exe c:\Windows\win.ini
Tämä avaa Notepadiin win.ini tiedoston (saatat joutua säätämään polkua vastaamaan järjestelmääsi). Notepad tutkii onko annettu käynnistysparametreja ja toimii sitten niiden mukaisesti. Sovelluksesi voi tehdä saman!
Komentoriviparametrit välitetään WPF-sovellukseesi App.xaml-artikkelissa tilatun käynnistystapahtuman kautta. Teemme saman tässä esimerkissä ja käytämme sitten metodiargumenttien kautta välitettyä arvoa. Ensin App.xaml-tiedosto
<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>
Kaikki mitä täällä teemme on se että tilaamamme Startup-tapahtuman, joka korvaa StartupUri-ominaisuuden. Tämä tapahtuma sitten toteutetaan App.xaml.cs:ssä
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();
}
}
}
StartupEventArgs on se, mitä käytämme täällä. Se välittää Application Startup -tapahtuman nimellä e. Sillä on ominaisuus Args, joka on merkkijonotaulukko. Komentoriviparametrit erotetaan välilyönneillä, ellei välilyönti ole lainatun merkkijonon sisällä.
Testataan komentoriviparametri
Jos ajat yllä olevan esimerkin, mitään ei tapahdu, koska komentoriviparametreja ei ole määritetty. Onneksi Visual Studio helpottaa tämän testaamista sovelluksessasi. Valitse Projekti-valikosta "[Projekt name] ominaisuudet" ja siirry sitten Debug-välilehteen, jossa voit määrittää komentoriviparametrin. Sen pitäisi näyttää tältä:
Aja sovellus ja huomaat, että se toimii parametrimäärittelyn mukaisesti.
Viesti ei tietenkään ole kovin hyödyllinen. Sen sijaan voit joko välittää sen pääikkunan konstruktorille tai kutsua sitä julkisella avoimella menetelmällä seuraavasti:
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();
}
}
}
Komentorivin mahdollisuudet
Tässä esimerkissä testaamme, onko olemassa täsmälleen yksi argumentti, ja jos on, käytämme sitä tiedostonimenä. Tosielämän esimerkissä on mahdollista käyttää useita argumentteja ja jopa käyttää niitä vaihtoehtoihin, esimerkiksi tietyn ominaisuuden kytkemiseen päälle tai pois päältä. Voit tehdä sen käymällä läpi kaikki argumenttilistan