반응형
명령 행 인자는 문자열의 배열 형태로 Main에 전달된다. 이 문자열의 배열은 OnStartUp 메소드에서도 사용할 수 있다. StartupEventArgs 인자의 Args 프로퍼티를 참조하면 된다.
Application에 MainWindow란 이름의 프로퍼티가 있다는 것은 프로그램이 여러 개의 창을 가질 수 있음을 시사하고 있는데, 이는 사실이다. 대화 상자를 그 좋은 예로 들 수 있다. 대화 상자는 기본적으로 Window 객체이지만 표시 방식이 조금 다르다는 점과 사용자와 상호작용을 한다는 점에서 약간의 차이가 있다.
다음 프로그램은 몇 개의 창을 더 만드는 프로그램이다. 마치 여러 개의 창을 초대해 파티를 여는 것 같아서 이름을 ThrowWindowParty로 했다.
using System;
using System.Windows;
using System.Windows.Input;
namespace ThrowWindowParty
{
public class ThrowWinowParty : Application
{
[STAThread]
public static void Main()
{
ThrowWinowParty app = new ThrowWinowParty();
//app.ShutdownMode = ShutdownMode.OnMainWindowClose;
app.Run();
}
protected override void OnStartup(StartupEventArgs e)
{
//메인 창이 닫힐 때만 Run이 반환되고, 프로그램이 종료된다.
ShutdownMode = ShutdownMode.OnMainWindowClose;
Window winMain = new Window();
winMain.Title = "Main Window";
winMain.MouseDown += WindowOnMouseDown;
winMain.Show();
for (int i = 0; i < 2; i++)
{
Window win = new Window();
win.Title = "Extra Window No. " + (i + 1);
//세 개의 윈도우 모두 화면 하단부에 있는 윈도우의 작업 표시줄에 나타나지 않도록 설정.
win.ShowInTaskbar = false;
//MainWindow = win;
win.Owner = winMain;
win.Show();
}
}
private void WindowOnMouseDown(object sender, MouseButtonEventArgs e)
{
Window win = new Window();
win.Title = "Modal Dialog Box";
win.ShowDialog();
}
}
}
반응형
'C# 개발 > WPF 관련 서적 예제' 카테고리의 다른 글
Charles Petzold의 WPF Chap. 01 - InheritAppAndWindow 예제 소스 (0) | 2022.04.24 |
---|---|
Charles Petzold의 WPF Chap. 01 - InheritTheApp 예제 소스 (0) | 2021.11.14 |
Charles Petzold의 WPF Chap. 01 - HandleAnEvent 예제 소스 (0) | 2021.09.04 |
Charles Petzold의 WPF Chap. 01 - SayHello 예제 소스 (0) | 2021.09.04 |
Charles Petzold의 WPF Chap. 17 - ChooseFont 예제 소스 (0) | 2021.09.03 |