TOC

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

A WPF application:

Command-line parameters in WPF

parameter Command-Line adalah teknik dimana Anda dapat memberikan beberapa parameter ke sebuah aplikasi yang ingin Anda mulai, entah bagaimana mempengaruhinya. Contoh yang paling umum adalah membuat aplikasi terbuka dengan file spesifik, seperti di sebuah editor. Anda bisa coba ini pada dirimu sendiri dengan aplikasi Notepad bawaan dari Windows, dengan menjalankan (pilih Run dari Start menu atau tekan [WindowsKey-R]):

notepad.exe c:\Windows\win.ini

Ini akan membuka Notepad dengan file win.ini terbuka (Anda mungkin harus mengubah jalurnya untuk mencocokkan Sistemmu). Notepad secara sederhana melihat untuk satu atau beberapa parameter lalu menggunakan mereka dan aplikasimu bisa melakukan hal yang sama!

Parameter Command-Line diteruskan dengan aplikasi WPF mu melalui event Startup, yang mana kita meng-subscribenya di artikel App.xaml. Kita akan melakukan hal yang sama di contoh ini, lalu menggunakan nilai yang diteruskan ke fungsi argumen. Pertama, file App.xamlnya:

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

Semua yang kita lakukan disini adalah untuk meng-subscribe ke event Startup, menggantikan properti StartupUrinya. eventnya lalu di implementasi di 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();
		}
	}
}

StartupEventArgs ialah apa yang kita gunakan disini. Itu bisa dilalui ke event Startup Aplikasi, dengan nama e. itu mempunyai properti Args, yang mana adalah string bertipe array. parameter Command-line dipisahkan oleh spasi, kecuali spasinya didalam sebuah string yang dikutip.

Mengetes parameter command-line

Jika kamu menjalankan contoh diatas, tidak akan terjadi apa-apa, karena tidak ada parameter command-line yang telah di spesifikasi. Untungnya, Visual Studio membuatnya lebih mudah untuk mengetes ini di aplikasimu. Dari Project pilih menu "[Project name] properties" lalu pergi ke tab Debug, dimana anda dapat mendefinisikan sebuah parameter command-line. Itu akan terlihat seperti ini:

Coba jalankan aplikasinya dan anda akan melihat itu merespons ke parametermu.

Tentu, pesannya tidak terlalu berguna. sebagai gantinya anda mungkin mau meneruskannya ke konstruktor dari main window atau panggil sebuah fungsi public terbuka disitu, seperti ini:

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

Kemungkinan Command-line

Di contoh ini, kita telah mengetes jika disana tepat sekali satu argumen dan jika demikian, kita menggunakan itu sebagai nama file. Contoh didunia nyata, anda mungkin mengambil beberapa argumen dan bahkan menggunakannya sebagai opsi, seperti mengalihkan sebuah fitur tertentu on atau off. Anda akan melakukannya dengan mengulangnya melalui seluruh daftar dari argumen yang dilalui saat mengambil informasi yang anda butuhkan untuk diproses, tapi itu diluar lingkup dari artikel ini.

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!