2011-10-30 94 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> 
    
相关问题