Аргумент командной строки — это механизм, в котором пользователь может передать набор параметров или значений в приложение WPF при его выполнении. Эти аргументы очень важны для управления приложением извне, например, если вы хотите открыть документ Word из командной строки, вы можете использовать эту команду « C: \> start winword word1.docx », и она откроет word1 .docx документ.
Аргументы командной строки обрабатываются в функции запуска. Ниже приведен простой пример, который показывает, как передавать аргументы командной строки в приложение WPF. Давайте создадим новое приложение WPF с именем WPFCommandLine .
-
Перетащите одно текстовое поле с панели инструментов в окно дизайна.
-
В этом примере мы передадим путь txt-файла нашему приложению в качестве параметра командной строки.
-
Программа прочитает текстовый файл, а затем запишет весь текст в текстовое поле.
-
Следующий код XAML создает текстовое поле и инициализирует его с некоторыми свойствами.
Перетащите одно текстовое поле с панели инструментов в окно дизайна.
В этом примере мы передадим путь 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, которое получит аргументы командной строки.
Ниже приведена реализация события 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 программа откроет текстовый файл и запишет весь текст в текстовое поле.
-
Если обнаружена какая-либо ошибка, программа отобразит сообщение об ошибке в текстовом поле.
Теперь в классе 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 в обозревателе решений и выберите свойства, появится следующее окно.
Когда приведенный выше код скомпилирован и выполнен, он создаст пустое окно с текстовым полем, потому что эта программа нуждается в аргументе командной строки. Таким образом, Visual Studio предоставляет простой способ выполнить ваше приложение с параметрами командной строки.
Щелкните правой кнопкой мыши ваш проект WPF в обозревателе решений и выберите свойства, появится следующее окно.
-
Выберите опцию Debug и напишите путь к файлу в аргументе командной строки.
-
Создайте текстовый файл с Test.txt, напишите в нем какой-нибудь текст и сохраните его в любом месте. В этом случае текстовый файл сохраняется на жестком диске « D: \ ».
-
Сохраните изменения в вашем проекте, скомпилируйте и запустите приложение сейчас. Вы увидите текст в TextBox, который программа читает из файла Text.txt.
Выберите опцию Debug и напишите путь к файлу в аргументе командной строки.
Создайте текстовый файл с Test.txt, напишите в нем какой-нибудь текст и сохраните его в любом месте. В этом случае текстовый файл сохраняется на жестком диске « D: \ ».
Сохраните изменения в вашем проекте, скомпилируйте и запустите приложение сейчас. Вы увидите текст в TextBox, который программа читает из файла Text.txt.
Теперь давайте попробуем изменить имя файла на вашем компьютере с Test.txt на Test1.txt и снова запустить вашу программу, затем вы увидите это сообщение об ошибке в текстовом поле.
Мы рекомендуем вам выполнить приведенный выше код и выполнить все шаги для успешного выполнения вашего приложения.