0

我的应用程序的主 UI 在 MainWindow.xaml 中。

首先 - 是什么导致这是应用程序在启动时打开的窗口。它似乎没有被定义为“启动对象”,并且似乎没有任何代码专门启动此窗口。

当应用程序在 MainWindow.xaml 的加载事件中启动时,我可以让我的登录窗口出现,定义一个新的“login.xaml”并告诉它显示为一个对话框。但是,如果我这样做,则 MainWindow 在登录关闭之前不会出现。

我想要实现的是当我的应用程序启动时,MainWindow 出现,然后在此之上以模态方式显示 Login 窗口。

如何才能做到这一点?

4

3 回答 3

2
  1. 在 VS 中创建项目时,默认MainWindow定义了的启动:App.xaml

    <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();
    }
    
于 2011-10-30T23:06:04.740 回答
1

一种方法是将Loaded事件处理程序添加到主窗口并在其中显示登录窗口:

this.Loaded += LoadedEventHander;


void LoadedEventHander(object sender, RoutedEventArgs e)
{
    // Show Login.xaml here.
}
于 2011-10-30T22:42:57.830 回答
0
  1. 在 app.xaml 中,下面一行定义了启动窗口,你可以根据需要更改它

    StartupUri="MainWindowView.xaml"
    
  2. 如果您正在关注 MVVM,您可以使用 System.Windows.Interactivity 将命令绑定到 Windows 加载事件(否则只需按照其他人的建议创建一个事件处理程序)

    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Loaded">
            <i:InvokeCommandAction Command="{Binding MyICommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
    
于 2011-10-30T22:48:04.430 回答