WPF - Dòng lệnh

Đối số dòng lệnh là một cơ chế trong đó người dùng có thể truyền một tập hợp các tham số hoặc giá trị cho ứng dụng WPF khi nó được thực thi. Các đối số này rất quan trọng để điều khiển ứng dụng từ bên ngoài, ví dụ: nếu bạn muốn mở tài liệu Word từ dấu nhắc lệnh, thì bạn có thể sử dụng lệnh này “C:\> start winword word1.docx”Và nó sẽ mở ra word1.docx tài liệu.

Đối số dòng lệnh được xử lý trong hàm Khởi động. Sau đây là một ví dụ đơn giản cho thấy cách chuyển các đối số dòng lệnh vào ứng dụng WPF. Hãy tạo một ứng dụng WPF mới với tênWPFCommandLine.

  • Kéo một hộp văn bản từ hộp công cụ vào cửa sổ thiết kế.

  • Trong ví dụ này, chúng tôi sẽ chuyển một đường dẫn tệp txt đến ứng dụng của chúng tôi dưới dạng tham số dòng lệnh.

  • Chương trình sẽ đọc tệp txt và sau đó viết tất cả văn bản trên hộp văn bản.

  • Mã XAML sau đây tạo một hộp văn bản và khởi tạo nó với một số thuộc tính.

<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>
  • Bây giờ hãy đăng ký sự kiện Khởi nghiệp trong tệp App.xaml như hình dưới đây.
<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>
  • Dưới đây là việc triển khai sự kiện app_Startup trong App.xaml.cs sẽ nhận các đối số dòng lệnh.

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; 
         } 
      } 
   } 
}
  • Bây giờ, trong lớp MainWindow, chương trình sẽ mở tệp txt và viết tất cả văn bản trên hộp văn bản.

  • Nếu có một số lỗi được tìm thấy, thì chương trình sẽ hiển thị thông báo lỗi trên hộp văn bản.

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); 
         } 
      } 
   } 
}
  • Khi đoạn mã trên được biên dịch và thực thi, nó sẽ tạo ra một cửa sổ trống với một hộp văn bản vì chương trình này cần một đối số dòng lệnh. Vì vậy, Visual Studio cung cấp một cách dễ dàng để thực thi ứng dụng của bạn với các tham số dòng lệnh.

  • Nhấp chuột phải vào dự án WPF của bạn trong trình khám phá giải pháp và chọn thuộc tính, nó sẽ hiển thị cửa sổ sau.

  • Chọn tùy chọn Gỡ lỗi và ghi đường dẫn tệp trong đối số Dòng lệnh.

  • Tạo tệp txt với Test.txt và viết một số văn bản trong tệp đó và lưu nó vào bất kỳ vị trí nào. Trong trường hợp này, tệp txt được lưu trên “D:\" ổ cứng.

  • Lưu các thay đổi trong dự án của bạn và biên dịch và thực thi ứng dụng của bạn ngay bây giờ. Bạn sẽ thấy văn bản trong TextBox mà chương trình đọc từ tệp Text.txt.

Bây giờ, hãy thử và thay đổi tên tệp trên máy của bạn từ Test.txt đến Test1.txt và thực thi lại chương trình của bạn, sau đó bạn sẽ thấy thông báo lỗi đó trong hộp văn bản.

Chúng tôi khuyên bạn nên thực thi mã trên và làm theo tất cả các bước để thực thi ứng dụng của bạn thành công.