This article has been localized into Vietnamese by the community.
Tham số Command-line trong WPF
Các tham số Command-line là nơi bạn chuyển một tập hợp các tham số tới một chương trình bạn muốn khởi động, để thay đổi chương trình. Ví dụ điển hình nhất cho điều này là bắt chương trình mở một file nhất định để sửa đổi chẳng hạn. Bạn có thể tự thử với chương trình Notepad (có sẵn trong tất cả các hệ điều hành Windows), bằng running (chọn Run từ menu Start hoặc ấn [WindowsKey-R]):
notepad.exe c:\Windows\win.ini
Thao tác trên sẽ chạy Notepad và mở file win.ini (có thể bạn phải thay đổi đường dẫn để phù hợp với hệ điều hành của mình). Notepad đơn giản chỉ lấy một hoặc nhiều tham số và sử dụng chúng, chương trình bạn viết cũng có thể làm điều tương tự!
Các tham số Command-line được đưa vào chương trình WPF của bạn cua sự kiện Startup, cái mà chúng ta đã đăng ký trong ví dụ ở chương App.xaml. Chúng ta sẽ làm điều tương tự tại ví dụ này, sau đó sử dụng các giá trị đó để chuyển vào các hàm phương thức (method). Đầu tiên, tệp 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>
Tất cả những gì ta làm ở đây là đăng ký sự kiện Startup, để thay thế thuộc tính StartupUri. Sự kiện này sau đó được sử dụng trong tệp App.xaml.cs:
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();
}
}
}
Chúng ta sử dụng tham số là class StartupEvenArgs. Tham số được đưa vào sự kiện Application Startup, dướii tên e. Class này có thuộc tính Args, là một chuỗi kí tự. Các tham số Command-line được ngăn cách bằng dấu trắng, trừ trường hợp dấu trắng nằm trong một chuỗi string khác.
Kiểm tra với tham số command-line
Nếu bạn chạy ví dụ trên, không điều gì xảy ra, bởi vì không có tham số command-line nào được chỉ định. May mắn thay, Visual Studio hỗ trợ bạn một cách đơn giản để thử chương trình của mình. từ menu Project chọn "[Project name] properties"] sau đó vào tab Debug, nơi này bạn có thể định nghĩa tham số command-line. Minh họa như sau:
Thử chạy chương trinh và bạn có thể thấy nó đã thay đổi theo tham số mình đưa ra.
Tất nhiên thông báo trên không có gì hữu hiệu. Thay vào đó bạn có thể chuyển nó vào hàm dựng của của sổ chính hoặc khởi tạo một phương thức (method) public như sau:
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();
}
}
}
Các tiềm năng khác của Command-line
Ở ví dụ này, chúng ta đã kiểm trả chương trình có duy nhất một giá trị hay không và nếu đúng, chúng ta sử dụng nó làm filename. Trong thực tế, bạn có thể sẽ tìm nhiều giá trị và sử dụng chúng cho các mục đích khác ví như bật tắt một chức năng. Bạn có thể làm điều này bằng cách sử dụng vòng lặp qua toàn bộ danh sách giá trị và thu thập thông tin cần thiết, nhưng điều đó nằm ngoài phạm vi tìm hiểu của chương này.