C#WPF应用程序启动错误

问题描述 投票:0回答:1

我想在我的应用程序中创建类似登录窗口的东西。当然,据我所知,登录窗口不应该启动主窗口 - 这就是我更改App.xamlApp.xaml.cs的原因:

<Application x:Class="WpfApp2.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:WpfApp2"
         >
<Application.Resources>

</Application.Resources>

我在qazxsw poi中覆盖了这个事件:

App.xaml.cs

该代码正在运行,但它对我不利,因为我想将一些参数推入protected override void OnStartup(StartupEventArgs e) { try { LoginForm loginForm = new LoginForm(); MainWindow mainWindow = new MainWindow(); bool result = (bool)loginForm .ShowDialog(); if(result) { mainWindow.Show(); } } catch (Exception ex) { throw ex; } } 构造函数中。所以,如果我将代码更改为:

MainWindow

如果我运行这段代码 - 我会看到我的登录表单,按下OK按钮后我会看到“我在这里”,之后就会出现异常。请帮帮我。如何解决这个问题?如果没有代码 - 我会添加它

我的登录窗口看起来像(Xaml和Xaml.cs):

protected override void OnStartup(StartupEventArgs e)
    {
        try
        {
            LoginForm loginForm = new LoginForm();
            bool result = (bool)loginForm .ShowDialog();
            if(result)
            {
                MessageBox.Show("I am here");
                MainWindow mainWindow = new MainWindow();
                mainWindow.Show();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

我的主窗口不包含任何有趣的内容。这是一个简单的窗口

c# wpf xaml
1个回答
2
投票

您可以将<Window x:Class="WpfApp2.LoginForm" 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:WpfApp2" mc:Ignorable="d" Title="Hello" Width="480" Height="370"> <Grid> <Button Content="Click Me" Width="100" Height="100" Click="SetDialogResultOK"> </Grid> <Window.Resources> </Window.Resources> </Window> public partial class LoginForm : Window { public LoginForm() { InitializeComponent(); } private void SetDialogResultOK(object sender, RoutedEventArgs e) { DialogResult = true; } } 属性设置为ShutdownMode,然后在ShutdownMode.OnExplicitShutdown关闭时关闭应用程序:

MainWindow
© www.soinside.com 2019 - 2024. All rights reserved.