TOC

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

یک نرم افزار WPF:

Command-line parameters in WPF

پارامترهای خط فرمان یک تکنیک هستند که در آن می‌توانید مجموعه‌ای از پارامترها را به یک برنامه که می‌خواهید شروع کنید، ارسال کنید تا به نحوی بر روی آن تاثیر بگذارید.معمول‌ترین مثال این است که برنامه را با یک فایل ویژه باز کنید، به عنوان مثال در یک ویرایشگر.شما می‌توانید این کار را با استفاده از برنامه پیش فرض ویندوزی Notepad ، خودتان امتحان کنید ، ( گزینه Run را از منوی Start اجرا کنید { یا کلید Windowskey + R } سپس Notepad را تایپ کنید

notepad.exe c:\Windows\win.ini

این باعث میشود تا برنامه Notepad باز شود و فایل win.ini را نمایش دهد (ممکن است نیاز باشد تا مسیر فایل را در سیستم خود تغییر دهید). برنامه Notepad به سادگی پارامتر(های) ورودی را دریافت میکند و از آن ها استفاده میکند و برنامه شما هم میتواند به همین صورت عمل کند!

پارامترهای خط فرمان از طریق رویداد استارتاپ، که در مقاله App.xaml مشترک آن شدیم، به اپلیکیشن WPF شما فرستاده می شوند، ما در این مثال هم همانگونه عمل میکنیم، سپس از طریق آرگومانهای متد از مقدار ارسالی استفاده میکنیم. ابتدا فایل 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>

تمامی کاری که ما انجام می دهیم این است که مشترک رویداد Startup می شویم. این کار را با استفاده از جایگزینی خصوصیت StartupUri انجام می دهیم.

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

The StartupEventArgs is what we use here. It's passed into the Application Startup event, with the name e. It has the property Args, which is an array of strings. Command-line parameters are separated by spaces, unless the space is inside a quoted string.

Testing the command-line parameter

If you run the above example, nothing will happen, because no command-line parameters have been specified. Fortunately, Visual Studio makes it easy to test this in your application. From the Project menu select "[Project name] properties" and then go to the Debug tab, where you can define a command-line parameter. It should look something like this:

برنامه تان را اجرا کنید و خواهید دید که به پارامتر ورودی شما پاسخ خواهد داد.

البته که این پیام خیلی به درد بخور نیست. به جای آن شما آن را به "سازنده" پنجره اصلی خود ارجاع داده و یا یک متد عمومی را بر روی آن اجرا می کنید،مانند این:

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

امکانات خط فرمان

در این مثال، ما تعداد آرگومان ها را بررسی می کنیم، در صورتی که دقیقا یکی باشد آن را به عنوان یک نام فایل استفاده می کنیم.در یک مثال واقعی ممکن است شما چندید آرگومان را دریافت کنید و از آنها برای اعمال تنظیمات استفاده نمایید،مثلا یک قابلیت خاص را خاموش و یا روشن کنید. شما این کار را با استفاده از گردش در لیستی از تمامی آرگومان های ورودی داده شده انجام می دهید و در همین حین اطلاعاتی را که برای ادامه کار به آن نیاز دارید جمع آوری می کنید، که این مطالب خارج از محدوده این مقاله می باشد

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!