خط فرمان در 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 اسم فایل مورد نظرتان را بنویسید:
تغییرات را ذخیره کرده و پروژه را کامپایل و اجرا کنید تا برنامه محتوای فایل مشخص شده را خوانده و مانند تصویر زیر نمایش دهد:
اگر فایل پیدا نشود یا مشکلی در خواندن آن پیش بیاید، مانند تصویر زیر خطای پیش آمده در TextBox نمایش داده می شود:
نوشته خط فرمان در WPF – آموزش WPF اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.