2012-11-16 34 views
21

當創建一個新的WPF應用程序項目時,將自動生成MainWindow.xamlApp.xaml及其相應的類後面的代碼。在App.xaml有一個定義的屬性,它將會窗口中最初運行並默認這是StartupUri="MainWindow.xaml"如何自定義WPF應用程序的啓動?

我在同一個項目中創建一個新的Dispatcher類。在啓動時,我想要構造那個類Dispatcher的實例,然後運行它的一個方法。該方法實際上會創建並顯示MainWindow窗口。那麼如何修改App.xamlApp.xaml.cs才能實現?或者,如果App無法完成,我該如何執行它?謝謝。

回答

38

您可以從App.xaml中刪除StartupUri屬性。

然後,通過在App.xaml.cs中爲OnStartup()創建覆蓋,您可以創建Dispatcher類的新實例。

這裏是我的快速app.xaml.cs實施的樣子:

public partial class App : Application 
{ 
    protected override void OnStartup(StartupEventArgs e) 
    { 
     base.OnStartup(e); 

     new MyClassIWantToInstantiate(); 
    } 
    } 
} 

更新

我最近的一個bug發現this workaround如果您使用此方法自定義應用程序啓動時,突然無的應用程序級資源可以找到。

+0

是的,謝謝你,那個作品。 – Boris

+0

您能詳細說明MyClassIWantToInstantiate()應該是什麼嗎?我嘗試了MainWindow,它是我的WPF應用程序的主窗口的類,在此之後什麼也沒有發生......它是加載事件代碼不執行。 –

+0

該課程可以滿足您的任何需求。要顯示一個窗口,你必須實例化它,然後調用Show()來顯示窗口。 –

2

嘗試使用啓動事件(類應用程序) - MSDN

在創建Dispatcher實例之後,您可以在此事件處理程序中顯示MainWindow。

相關問題