WPF - บรรทัดคำสั่ง

อาร์กิวเมนต์บรรทัดคำสั่งเป็นกลไกที่ผู้ใช้สามารถส่งผ่านชุดของพารามิเตอร์หรือค่าไปยังแอ็พพลิเคชัน WPF เมื่อดำเนินการ อาร์กิวเมนต์เหล่านี้มีความสำคัญมากในการควบคุมแอปพลิเคชันจากภายนอกเช่นหากคุณต้องการเปิดเอกสาร Word จากพรอมต์คำสั่งคุณสามารถใช้คำสั่งนี้“C:\> start winword word1.docx"และจะเปิดขึ้น word1.docx เอกสาร.

อาร์กิวเมนต์บรรทัดคำสั่งถูกจัดการในฟังก์ชัน Startup ต่อไปนี้เป็นตัวอย่างง่ายๆที่แสดงวิธีการส่งอาร์กิวเมนต์บรรทัดคำสั่งไปยังแอ็พพลิเคชัน WPF มาสร้างแอปพลิเคชั่น WPF ใหม่ด้วยชื่อWPFCommandLine.

  • ลากกล่องข้อความหนึ่งกล่องจากกล่องเครื่องมือไปที่หน้าต่างออกแบบ

  • ในตัวอย่างนี้เราจะส่งเส้นทางไฟล์ txt ไปยังแอปพลิเคชันของเราเป็นพารามิเตอร์บรรทัดคำสั่ง

  • โปรแกรมจะอ่านไฟล์ txt จากนั้นเขียนข้อความทั้งหมดบนกล่องข้อความ

  • รหัส 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>
  • ตอนนี้สมัครงาน Startup ในไฟล์ App.xaml ดังที่แสดงด้านล่าง
<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>
  • ด้านล่างนี้คือการนำเหตุการณ์ app_Startup ไปใช้ใน App.xaml.cs ซึ่งจะได้รับอาร์กิวเมนต์บรรทัดคำสั่ง

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 โปรแกรมจะเปิดไฟล์ txt และเขียนข้อความทั้งหมดบนกล่องข้อความ

  • หากพบข้อผิดพลาดโปรแกรมจะแสดงข้อความแสดงข้อผิดพลาดบนกล่องข้อความ

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); 
         } 
      } 
   } 
}
  • เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานจะสร้างหน้าต่างว่างพร้อมกล่องข้อความเนื่องจากโปรแกรมนี้ต้องการอาร์กิวเมนต์บรรทัดคำสั่ง Visual Studio มีวิธีง่ายๆในการเรียกใช้แอปพลิเคชันของคุณด้วยพารามิเตอร์บรรทัดคำสั่ง

  • คลิกขวาที่โปรเจ็กต์ WPF ของคุณในตัวสำรวจโซลูชันและเลือกคุณสมบัติจะแสดงหน้าต่างต่อไปนี้

  • เลือกตัวเลือกการดีบักและเขียนเส้นทางไฟล์ในอาร์กิวเมนต์บรรทัดคำสั่ง

  • สร้างไฟล์ txt ด้วย Test.txt และเขียนข้อความในไฟล์นั้นและบันทึกไว้ในตำแหน่งใดก็ได้ ในกรณีนี้ไฟล์ txt จะถูกบันทึกบน“D:\" ฮาร์ดไดรฟ์.

  • บันทึกการเปลี่ยนแปลงในโครงการของคุณและรวบรวมและดำเนินการแอปพลิเคชันของคุณตอนนี้ คุณจะเห็นข้อความใน TextBox ซึ่งโปรแกรมอ่านจากไฟล์ Text.txt

ตอนนี้เรามาลองเปลี่ยนชื่อไฟล์บนเครื่องของคุณจาก Test.txt ถึง Test1.txt และดำเนินการโปรแกรมของคุณอีกครั้งจากนั้นคุณจะเห็นข้อความแสดงข้อผิดพลาดนั้นในกล่องข้อความ

เราขอแนะนำให้คุณรันโค้ดด้านบนและทำตามขั้นตอนทั้งหมดเพื่อรันแอพพลิเคชั่นของคุณให้สำเร็จ