خط فرمان در WPF – آموزش WPF

wpf command line 10630 تصویر

خط فرمان در WPF

آرگومان خط فرمان مکانیزمی است که با استفاده از آن کاربر می تواند پارامترها و یا مقادیر مورد نظرش را در هنگام اجرا شدن برنامه به آن ارسال کند. از این مکانیزم به منظور کنترل رفتار برنامه از خارج استفاده می شود. برای مثال اگر بخواهیم یک فایل Word را از طریق خط فرمان باز کنیم، باید دستور start winword word1.docx را اجرا کنیم. در WPF آرگومان های خط فرمان در داخل تابع Startup مدیریت می شوند. در مثال ساده زیر نحوه ارسال آرگومان به یک برنامه WPF و نحوه مدیریت کردن آن ها را نشان داده ایم.

مثال

در این مثال برنامه نام یک فایل متنی را از خط فرمان دریافت می کند و سپس محتوای آن را خوانده و در TextBox نمایش می دهد. اگر خطایی در انجام عملیات رخ دهد، آن را در TextBox نمایش می دهد. یک پروژه WPF به نام WPFCommandLine ایجاد کرده و آن را مانند نمونه زیر تغییر دهید.

محتوای فایل MainWindow.xaml:

<Window x:Class = "WPFCommandLine.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   xmlns:local = "clr-namespace:WPFCommandLine" 
   mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "525"> 
	
   <Grid> 
      <TextBox x:Name = "textBox" HorizontalAlignment = "Left"  
         Height = "180" Margin = "100" TextWrapping = "Wrap" 
         VerticalAlignment = "Top" Width = "300"/> 
   </Grid> 
	
</Window>

حال فایل App.xaml را باز کرده و مانند نمونه زیر برای رویداد Startup یک هندلر تنظیم کنید:

<Application x:Class = "WPFCommandLine.App" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:local = "clr-namespace:WPFCommandLine" 
   StartupUri = "MainWindow.xaml" Startup = "app_Startup"> 
	
   <Application.Resources> 
          
   </Application.Resources>
	
</Application>

کد مربوط به هندلر رویداد Startup را مانند نمونه زیر تغییر دهید:

using System.Windows;
  
namespace WPFCommandLine { 
   /// <summary> 
      /// Interaction logic for App.xaml 
   /// </summary> 
	
   public partial class App : Application { 
      public static string[] Args;
		
      void app_Startup(object sender, StartupEventArgs e) { 
         // If no command line arguments were provided, don't process them 
         if (e.Args.Length == 0) return;
			
         if (e.Args.Length > 0) { 
            Args = e.Args; 
         } 
      } 
   } 
}

محتوای فایل MainWindow.xaml.cs:

using System; 
using System.IO; 
using System.Windows;  

namespace WPFCommandLine { 

   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
         String[] args = App.Args;
			
         try {
            // Open the text file using a stream reader. 
            using (StreamReader sr = new StreamReader(args[0])) { 
               // Read the stream to a string, and write  
               // the string to the text box 
               String line = sr.ReadToEnd(); 
               textBox.AppendText(line.ToString()); 
               textBox.AppendText("\n"); 
            } 
         } 
         catch (Exception e) { 
            textBox.AppendText("The file could not be read:"); 
            textBox.AppendText("\n"); 
            textBox.AppendText(e.Message); 
         } 
      } 
   } 
}

حال بر روی اسم پروژه کلیک راست کرده و گزینه Properties را انتخاب کنید و به بخش Debug بروید. سپس در بحش Command line arguments اسم فایل مورد نظرتان را بنویسید:

wpf command line 10630 1 تصویر

تغییرات را ذخیره کرده و پروژه را کامپایل و اجرا کنید تا برنامه محتوای فایل مشخص شده را خوانده و مانند تصویر زیر نمایش دهد:

wpf command line 10630 2 تصویر

اگر فایل پیدا نشود یا مشکلی در خواندن آن پیش بیاید، مانند تصویر زیر خطای پیش آمده در TextBox نمایش داده می شود:

wpf command line 10630 3 تصویر

نوشته خط فرمان در WPF – آموزش WPF اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *