WPF - wiersz poleceń
Argument wiersza polecenia to mechanizm, w którym użytkownik może przekazać zestaw parametrów lub wartości do aplikacji WPF podczas jej wykonywania. Te argumenty są bardzo ważne, aby kontrolować aplikację z zewnątrz, na przykład, jeśli chcesz otworzyć dokument programu Word z wiersza polecenia, możesz użyć tego polecenia „C:\> start winword word1.docx”I się otworzy word1.docx dokument.
Argumenty wiersza poleceń są obsługiwane w funkcji Startup. Poniżej znajduje się prosty przykład, który pokazuje, jak przekazać argumenty wiersza polecenia do aplikacji WPF. Utwórzmy nową aplikację WPF o nazwieWPFCommandLine.
Przeciągnij jedno pole tekstowe z przybornika do okna projektu.
W tym przykładzie przekażemy ścieżkę do pliku txt do naszej aplikacji jako parametr wiersza poleceń.
Program odczyta plik txt, a następnie zapisze cały tekst w polu tekstowym.
Poniższy kod XAML tworzy pole tekstowe i inicjuje je z niektórymi właściwościami.
<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>
- Teraz zasubskrybuj zdarzenie startowe w pliku App.xaml, jak pokazano poniżej.
<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>
Poniżej podano implementację zdarzenia app_Startup w App.xaml.cs, które pobierze argumenty wiersza poleceń.
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;
}
}
}
}
Teraz w klasie MainWindow program otworzy plik txt i zapisze cały tekst w polu tekstowym.
Jeśli zostanie znaleziony jakiś błąd, program wyświetli komunikat o błędzie w polu tekstowym.
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);
}
}
}
}
Kiedy powyższy kod zostanie skompilowany i wykonany, utworzy puste okno z polem tekstowym, ponieważ ten program potrzebuje argumentu wiersza poleceń. Dlatego program Visual Studio zapewnia łatwy sposób uruchamiania aplikacji z parametrami wiersza polecenia.
Kliknij prawym przyciskiem myszy projekt WPF w eksploratorze rozwiązań i wybierz właściwości, wyświetli się następujące okno.
Wybierz opcję Debuguj i wpisz ścieżkę do pliku w argumencie wiersza polecenia.
Utwórz plik txt za pomocą Test.txt i napisz tekst w tym pliku i zapisz go w dowolnej lokalizacji. W tym przypadku plik txt jest zapisywany na „D:\" twardy dysk.
Zapisz zmiany w projekcie, a następnie skompiluj i uruchom swoją aplikację. Zobaczysz tekst w TextBox, który program czyta z pliku Text.txt.
Teraz spróbujmy zmienić nazwę pliku na twoim komputerze z Test.txt do Test1.txt i ponownie uruchom program, zobaczysz ten komunikat o błędzie w polu tekstowym.
Zalecamy wykonanie powyższego kodu i wykonanie wszystkich kroków w celu pomyślnego wykonania aplikacji.