Аргумент командной строки — это механизм, в котором пользователь может передать набор параметров или значений в приложение 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 и снова запустить вашу программу, затем вы увидите это сообщение об ошибке в текстовом поле.
Мы рекомендуем вам выполнить приведенный выше код и выполнить все шаги для успешного выполнения вашего приложения.


