인수를 기반으로 WPF를 시작하는 방법
저는 현재 파일 조작을 하는 애플리케이션을 개발하고 있는데 콘솔이나 UI를 통해 조작할 수 있도록 하고 싶습니다(WPF를 선택했습니다).
꼭 하고 싶은 말: (푸에도)
if ( Environment.GetCommandLineArgs().Length > 0 )
{
//Do not Open WPF UI, Instead do manipulate based
//on the arguments passed in
}
else
{
//Open the WPF UI
}
WPF 창/어플리케이션을 프로그래밍 방식으로 기동하는 다음과 같은 몇 가지 다른 방법에 대해 읽은 적이 있습니다.
Application app = new Application ();
app.Run(new Window1());
하지만 콘솔 응용 프로그램에 연결하기만 하면 되는지 잘 모르겠습니다.
이것을 실현하는 방법에 관한 베스트 프랙티스나 추천을 가지고 있는 사람이 있습니까?주요 처리 기능은 제가 만든 도우미 클래스에 있습니다.따라서 기본적으로 전달된 인수에 따라 정적 시작 메서드(표준 콘솔응용 프로그램 생성과 동일) 또는 UI가 Helper 클래스에 액세스하도록 합니다.
인Application
class "StartUp" 이벤트가 있습니다.이 이벤트를 사용할 수 있습니다.명령 프롬프트를 통해 제공하는 arg가 제공됩니다.다음으로 MSDN의 예를 나타냅니다.
App.xaml
<Application x:Class="WpfApplication99.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="App_Startup">
</Application>
App.xaml.cs
public partial class App : Application
{
void App_Startup(object sender, StartupEventArgs e)
{
// Application is running
// Process command line args
bool startMinimized = false;
for (int i = 0; i != e.Args.Length; ++i)
{
if (e.Args[i] == "/StartMinimized")
{
startMinimized = true;
}
}
// Create main application window, starting minimized if specified
MainWindow mainWindow = new MainWindow();
if (startMinimized)
{
mainWindow.WindowState = WindowState.Minimized;
}
mainWindow.Show();
}
}
이게 도움이 됐으면 좋겠어요.
명령줄 인수를 가져오려면 두 가지 옵션이 있습니다.
1) 인수를 읽고 싶은 경우OnStartup
이것은, 의 글로벌한 액세스에 도움이 됩니다.args
.
오버라이드OnStartup
에App.xaml.cs
그리고 이 사진을 보세요Args
의 특성StartupEventArgs
학급.
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
foreach (string arg in e.Args)
{
// TODO: whatever
}
base.OnStartup(e);
}
}
2) 다른 쉬운 방법은 환경 객체에서 인수를 읽는 것입니다.
환경.Get Command Line Args();
Form / Page 등 어플리케이션 내 어디에서나 사용할 수 있습니다.
스타트업 이벤트는 보통 "App.xaml"에 등록되어 있고 수정하고 싶지 않을 수 있기 때문에 OnStartup 덮어쓰기를 선호합니다.또한 OnStartup 함수는 Startup 이벤트를 호출하기 전에 몇 가지 전처리를 수행할 수 있는 방법을 제공합니다.이것이 OnStartup을 덮어쓸 수 있는 이유입니다!
언급URL : https://stackoverflow.com/questions/11769113/how-to-start-wpf-based-on-arguments
'programing' 카테고리의 다른 글
문자열 길이를 기준으로 Python 목록 정렬 (0) | 2023.04.16 |
---|---|
WPF(.NET 4)에 TimePicker 컨트롤이 있습니까? (0) | 2023.04.16 |
WPF DataGrid에서 원클릭 편집 (0) | 2023.04.16 |
wpf 형식의 텍스트로 위첨자 및 아래첨자 설정 (0) | 2023.04.16 |
TextBlock에서 WPF 형식의 DateTime? (0) | 2023.04.16 |