WPF - Komut Satırı

Komut satırı bağımsız değişkeni, bir kullanıcının çalıştırıldığında bir WPF uygulamasına bir dizi parametre veya değer iletebildiği bir mekanizmadır. Bu argümanlar, bir uygulamayı dışarıdan kontrol etmek için çok önemlidir, örneğin, komut isteminden bir Word belgesi açmak istiyorsanız, bu komutu kullanabilirsiniz "C:\> start winword word1.docx"Ve açılacak word1.docx belge.

Komut satırı bağımsız değişkenleri Başlangıç ​​işlevinde işlenir. Aşağıda, komut satırı bağımsız değişkenlerinin bir WPF uygulamasına nasıl aktarılacağını gösteren basit bir örnek verilmiştir. Adıyla yeni bir WPF uygulaması oluşturalımWPFCommandLine.

  • Drag one textbox from the toolbox to the design window.

  • In this example, we will pass a txt file path to our application as command line parameter.

  • The program will read the txt file and then write all the text on the text box.

  • The following XAML code creates a textbox and initializes it with some properties.

<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>
  • Now subscribe the Startup event in App.xaml file as shown below.
<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>
  • Given below is the implementation of the app_Startup event in App.xaml.cs which will get the command line arguments.

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; 
         } 
      } 
   } 
}
  • Now, in the MainWindow class, the program will open the txt file and write all the text on textbox.

  • If there is some error found, then the program will display an error message on textbox.

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); 
         } 
      } 
   } 
}
  • When the above code is compiled and executed, it will produce a blank window with a textbox because this program needs a command line argument. So Visual Studio provides an easy way to execute your application with command line parameters.

  • Right click on your WPF project in the solution explorer and select properties, it will display the following window.

  • Select Debug option and write the file path in the Command line argument.

  • Create a txt file with Test.txt and write some text in that file and save it on any location. In this case, the txt file is saved on “D:\” hard drive.

  • Save the changes in your project and compile and execute your application now. You will see the text in TextBox which the program reads from the Text.txt file.

Now let’s try and change the file name on your machine from Test.txt to Test1.txt and execute your program again, then you will see that error message in the text box.

We recommend that you execute the above code and follow all the steps to execute your application successfully.