2014-02-11 57 views
2

我無法讓我的MainWindow在不使用StartupUri的情況下顯示。 OnStartup不會觸發。WPF MainWindow Override OnStartup

我刪除了的StartupUri從App.xaml中

<Application x:Class="SCon" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
</Application> 

中添加了以下代碼後面

protected override void OnStartup(StartupEventArgs e) 
    { 
     base.OnStartup(e); 
     SCon.MainWindow.Instance.Show(); 
    } 

主窗口是一個單

private static volatile MainWindow instance = null; 
    private static object lockThis = new object(); 
    public static MainWindow Instance 
    { 
     get 
     { 
      if (instance == null) 
      { 
       lock (lockThis) 
       { 
        if (instance == null) 
        { 
         instance = new MainWindow(); 
        } 
       } 
      } 
      return instance; 
     } 
    } 
+0

必須有一些指定爲啓動窗口。你的意思是你想在你的應用程序啓動時自動顯示2個窗口嗎? – Rod

+0

不,它只是把MainWindow變成了一個單例。所以我嘗試重寫OnStartup來創建我的窗口,但它從不觸發OnStartup – Tsukasa

回答

1

你需要把下面的行XAML文件:

<Application x:Class="SCon" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Startup="OnStartup"> 
</Application> 

這就是爲什麼它沒有觸發OnStartup方法。