2011-10-30 46 views
0

我的應用程序的主UI在MainWindow.xaml中。如何在主應用程序窗口後直接打開窗口

首先 - 是什麼導致這是應用程序在啓動時打開的窗口。它看起來並沒有被定義爲「starup對象」,並且似乎沒有任何專門啓動此窗口的代碼。

我可以讓我的登錄窗口在應用程序啓動時顯示在MainWindow.xaml的加載事件中,定義一個新的「login.xaml」並告訴它顯示爲對話框。但是,如果我這樣做,那麼直到登錄已關閉,MainWindow纔會出現。

我想要實現的是當我的應用程序啓動時,MainWindow出現,然後登錄窗口以模態方式顯示。

這怎麼辦?

回答

2
  1. MainWindow的啓動是App.xaml默認創建在VS一個項目時,定義:

    <Application ... 
          StartupUri="MainWindow.xaml"> 
        <Application.Resources> 
    
        </Application.Resources> 
    </Application> 
    
  2. 創建在Loaded事件中的對話應該工作,只是不要在構造函數中它尚未加載。

    Loaded="Window_Loaded" 
    
    private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
        new LoginDialogue().ShowDialog(); 
    } 
    
1

的一種方式可能是一個Loaded事件處理程序添加到您的主窗口,並在顯示登錄窗口:

this.Loaded += LoadedEventHander; 


void LoadedEventHander(object sender, RoutedEventArgs e) 
{ 
    // Show Login.xaml here. 
} 
0
  1. 在App.xaml中以下行定義了啓動窗口,你可以改變它,如果你想

    StartupUri="MainWindowView.xaml" 
    
  2. 如果你正在跟蹤MVVM可以綁定到使用System.Windows.Interactivity加載事件窗口的命令(否則根本CRE吃的其他人所說的事件處理程序)

    <i:Interaction.Triggers> 
        <i:EventTrigger EventName="Loaded"> 
         <i:InvokeCommandAction Command="{Binding MyICommand}"/> 
        </i:EventTrigger> 
    </i:Interaction.Triggers> 
    
相關問題