WPF - Командная строка

Аргумент командной строки - это механизм, с помощью которого пользователь может передать набор параметров или значений приложению WPF при его выполнении. Эти аргументы очень важны для управления приложением извне, например, если вы хотите открыть документ Word из командной строки, вы можете использовать эту команду «C:\> start winword word1.docx»И он откроется word1.docx документ.

Аргументы командной строки обрабатываются в функции запуска. Ниже приведен простой пример, показывающий, как передавать аргументы командной строки в приложение WPF. Создадим новое приложение WPF с именемWPFCommandLine.

  • Перетащите одно текстовое поле из панели инструментов в окно дизайна.

  • В этом примере мы передадим нашему приложению путь к 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 программа откроет текстовый файл и напишет весь текст в текстовое поле.

  • Если обнаружена какая-то ошибка, программа отобразит сообщение об ошибке в текстовом поле.

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 в проводнике решений и выберите свойства, откроется следующее окно.

  • Выберите параметр «Отладка» и укажите путь к файлу в аргументе командной строки.

  • Создайте текстовый файл с Test.txt, напишите в него текст и сохраните его в любом месте. В этом случае текстовый файл сохраняется на «D:\" жесткий диск.

  • Сохраните изменения в своем проекте, скомпилируйте и запустите приложение прямо сейчас. Вы увидите текст в TextBox, который программа читает из файла Text.txt.

Теперь давайте попробуем изменить имя файла на вашем компьютере с Test.txt к Test1.txt и снова запустите вашу программу, тогда вы увидите это сообщение об ошибке в текстовом поле.

Мы рекомендуем вам выполнить приведенный выше код и выполнить все шаги для успешного выполнения вашего приложения.