2009-12-22 4 views
1

C#이 어떻게 시작을 원하는지 항상 저를 괴롭게했습니다. 그래서 지금 나는 내 자신의 주요 방법을 만들려고 노력하고 있습니다.WPF 프로젝트의 메인 변경

[System.STAThreadAttribute()] 
[System.Diagnostics.DebuggerNonUserCodeAttribute()] 
public static void Main() 
{ 
    Model model= new Model(); 
    Controller controller = new Controller(model); 
    MainWindow window = new MainWindow(controller, model); 
} 

이 방법은 실행,하지만 난 시각 아무것도 볼 수 없습니다 :

나는이 주요 방법을 제공하고 있습니다 : 그것은 작동하지 않습니다. 나는 나는 다음과 같은 정상의 주요 코드에서 무언가 그리워 생각 :

Application.App app = new Application.App(); 
app.InitializeComponent(); 
app.Run(); 

내가 같은 코드 기호와 OnStartUp 재정의하는 시도를하지만 예외가 발생합니다. 다른 솔루션을 갖고 계시다면 기꺼이 들어 주시기 바랍니다. 왜 MainWindow를 먼저 만들어야하는지 알 수 없습니다.

답변

5

네 말이 맞아 : 당신이 실행 응용 프로그램을 인스턴스화하고 호출 할 필요가 그 위에. (당신은 메인에서 이것을 할 수 있습니다.) 실행시 윈도우를 보이게하려면 세 가지 옵션이 있습니다 :

  • 실행 (윈도우) 과부하를 사용하십시오. MainWindow w = ...; new MyApp().Run(w);
  • 예 : myApp.StartupUri = new Uri(...); myApp.Run();
  • Startup 이벤트 또는 OnStartup 오버라이드에서 표시를 수행합니다. 예 : myApp.Startup += (...) => new MainWindow().Show();
수동 시작 코드의

예는 Application.Run()Application.Run(Window) 항목에서 MSDN에 표시됩니다 -이 당신이 시작한다! Run() 오버로드에 대해서도 이 설명되어 있습니다. 왜 Application.Run이 필요하며 무엇이 해당되는지. 디스 패쳐 루프를 시작합니다.

+0

감사합니다. 그냥 내가 알아야 할 필요가 :) –

0

C#이 어떻게 시작을 원하는지 나에게 항상 짜증이났다. 그래서 지금 나는 내 자신의 주요 방법을 만들려고 노력하고 있습니다. 작동하지 않습니다.

C#은 시작을하지 않습니다. 그것은 당신을 위해 코드를 삽입합니다. 언제든지 코드를 변경할 수 있으므로 원하는대로 할 수 있습니다. 내가 너라면 먼저해야 할 일 - 프로젝트 파일을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. 응용 프로그램 (맨 위 탭) - 시작 개체를 참조하십시오.

양식 또한

선택할 수 있습니다

- 당신이 윈도우를 표시 할 경우이 줄을 놓치고을 :

window.Show(); 
+0

창이 보이면 응용 프로그램이 닫힙니다. –

+0

window.Show는 윈도우가 나타나게하고, 프로세스가 종료되면 즉시 사라질 것입니다 (Show는 윈도우가 닫힐 때까지 기다리지 않기 때문에). – itowlson

+0

다음 사용 window.ShowDialog(); –

관련 문제