WPF-명령 줄

명령 줄 인수는 실행될 때 사용자가 매개 변수 또는 값 집합을 WPF 응용 프로그램에 전달할 수있는 메커니즘입니다. 이러한 인수는 외부에서 응용 프로그램을 제어하는 ​​데 매우 중요합니다. 예를 들어 명령 프롬프트에서 Word 문서를 열려면 다음 명령을 사용할 수 있습니다.C:\> start winword word1.docx”그러면 열립니다. word1.docx 문서.

명령 줄 인수는 시작 기능에서 처리됩니다. 다음은 WPF 애플리케이션에 명령 줄 인수를 전달하는 방법을 보여주는 간단한 예입니다. 이름으로 새 WPF 애플리케이션을 만들어 보겠습니다.WPFCommandLine.

  • 도구 상자에서 디자인 창으로 텍스트 상자 하나를 끕니다.

  • 이 예에서는 명령 줄 매개 변수로 응용 프로그램에 txt 파일 경로를 전달합니다.

  • 프로그램은 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>
  • 이제 아래와 같이 App.xaml 파일의 Startup 이벤트를 구독합니다.
<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.xaml.cs의 app_Startup 이벤트 구현입니다.

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 클래스에서 프로그램은 txt 파일을 열고 텍스트 상자에 모든 텍스트를 씁니다.

  • 오류가 발견되면 프로그램은 텍스트 상자에 오류 메시지를 표시합니다.

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로 txt 파일을 만들고 해당 파일에 텍스트를 작성한 다음 원하는 위치에 저장합니다. 이 경우 txt 파일은“D:\”하드 드라이브.

  • 프로젝트의 변경 사항을 저장하고 지금 애플리케이션을 컴파일하고 실행하십시오. 프로그램이 Text.txt 파일에서 읽는 TextBox의 텍스트를 볼 수 있습니다.

이제 컴퓨터의 파일 이름을 다음에서 변경해 보겠습니다. Test.txt ...에 Test1.txt 프로그램을 다시 실행하면 텍스트 상자에 해당 오류 메시지가 표시됩니다.

위 코드를 실행하고 모든 단계에 따라 애플리케이션을 성공적으로 실행하는 것이 좋습니다.