c# - 从 App.xaml.cs WPF 依次启动两个窗口

标签 c# wpf xaml app.xaml

我想让用户在 MainWindow 出现之前登录。

第一个窗口出现,工作正常,关闭所有其他 WindowName.ShowDialog() 调用后不起作用。

我的代码: 在 app.xaml 中,我删除了 StartupUri 并将其替换为

Startup="Application_Startup"

看起来像这样 (App.xaml.cs):

private void Application_Startup(object sender, StartupEventArgs e)
{
    Window1 window1 = new Window1();
    window1.ShowDialog();

    MainWindow window2 = new MainWindow();
    window2.ShowDialog();
}

我有两个完全未触及的窗口(除了标题)第二个看起来一样:

<Window x:Class="Delete_Me.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Delete_Me"
        mc:Ignorable="d"
        Title="First window" Height="300" Width="300">
    <Grid>

    </Grid>
</Window>

后面的代码也没有受到影响。

问题 如何依次从 App.xaml.cs 启动两个窗口? 或者有什么更好的方法来做到这一点?

我的方法 我尝试调换两个窗口,但没有任何改变。

当然我可以在 MainWindow 的构造器/OnLoaded 中启动 LoginForm,但这似乎不是一个很好的解决方案问题。

如果身份验证失败,我什至不想启动 MainWindow

有什么建议吗?谢谢。

最佳答案

如果没有更多窗口存在,WPF 应用程序将退出。这意味着您的应用程序在创建第二个窗口之前关闭第一个窗口后停止。

要解决您的问题,您需要在关闭第一个窗口之前创建第二个窗口。只需将您的代码更改为

Window1 window1 = new Window1();
MainWindow window2 = new MainWindow();

window1.ShowDialog();
window2.ShowDialog();

修复它。

关于c# - 从 App.xaml.cs WPF 依次启动两个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47370784/

相关文章:

c# - Excel Interop - 保存前设置文件名

c# - 在 mvvm light 中获取已排序的可观察集合

wpf - CollectionViewSource View 绑定(bind)不适用于自定义控件

c# - 如何按 2 列比较两个 csv 文件?

c# - 搜索 ArrayList

c# - LinqToSql 关联加载

wpf - 导航以在WPF中查看

c# - 如何在我的 XAML 中使用另一个自定义控件基类,使 WPF 在我的 View 中实例化一个自定义控件?

wpf - 当没有绑定(bind)元素时使默认可见性折叠

xaml - DatePicker 弹出演示者样式