TOC

This article is currently in the process of being translated into Persian (~99% 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();
		}
	}
}

کلاس StartupEventArgs چیزی است که ما در اینجا استفاده می‌کنیم. این کلاس با نام e به رویداد Startup برنامه ارسال شده است. کلاس مذکور دارای یک ویژگی به نام Args است که از مجموعه‌ای از رشته‌های متن تشکیل شده است. پارامترهای خط فرمان با فاصله از یکدیگر جدا می‌شوند، مگر اینکه فاصله (space) داخل علامت نقل قول (") باشد.

تست کردن پارامترهای خط فرمان

اگر مثال بالا را اجرا کنید، هیچ اتفاقی رخ نخواهد داد، زیرا هیچ پارامتر خط فرمانی ارسال نشده است. خوشبختانه، ویژوال استودیو امکان آزمون این کار در برنامه را فراهم کرده است. از منوی Project "[Project name] properties" را انتخاب کنید. سپس اگر به برگه Debug بروید، می توانید یک پارامتر خط فرمان تعریف کنید. پارامتر باید چیزی شبیه به این باشد:

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

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

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!