📜  单击在 wpf 中打开另一个窗口的按钮后关闭主窗口 - C# (1)

📅  最后修改于: 2023-12-03 15:07:20.708000             🧑  作者: Mango

单击按钮打开另一个窗口并关闭主窗口

在 WPF 中,我们可以使用按钮控件来打开其他窗口。在本文中,我们将展示如何单击按钮后打开新窗口,并在打开新窗口后关闭主窗口。

创建主窗口

首先,我们需要创建一个 WPF 窗口作为我们的主窗口。在窗口中,我们需要添加一个按钮,当单击它时,它将打开另一个窗口。在 XAML 中,我们可以这样实现:

<!-- MainWindow.xaml -->
<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Content="Open new window" Click="Button_Click" />
    </Grid>
</Window>

这将创建一个包含一个按钮的窗口。

实现按钮单击事件

接下来,我们需要让按钮单击事件打开新窗口。在 C# 中,我们可以通过创建一个新的窗口对象并调用 Show() 方法来打开它。在打开新窗口后,我们需要关闭主窗口,这可以通过调用主窗口的 Close() 方法来实现。

// MainWindow.xaml.cs
private void Button_Click(object sender, RoutedEventArgs e)
{
    // Create new window
    var window = new NewWindow();

    // Show new window
    window.Show();

    // Close main window
    Close();
}

现在,当用户单击按钮时,我们将打开一个新窗口并关闭主窗口。

创建新窗口

最后,我们需要创建一个新窗口,并将其包含在我们的应用程序中。我们可以使用 Visual Studio 的“添加新项”功能来创建一个 WPF 窗口。我们需要做的就是在项目中右键单击,选择“添加”->“新建项”,然后选择“WPF 窗口”。

创建新窗口后,我们可以在其 XAML 中添加一些控件,以展示一些东西。在此示例中,我们将在新窗口中添加一个 TextBlock,并在其中显示“Hello, World!”。

<!-- NewWindow.xaml -->
<Window x:Class="WpfApp.NewWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="New Window" Height="150" Width="200">
    <Grid>
        <TextBlock Text="Hello, World!" VerticalAlignment="Center" 
                   HorizontalAlignment="Center" FontSize="20" />
    </Grid>
</Window>
完整代码

MainWindow.xaml:

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Content="Open new window" Click="Button_Click" />
    </Grid>
</Window>

MainWindow.xaml.cs:

private void Button_Click(object sender, RoutedEventArgs e)
{
    var window = new NewWindow();
    window.Show();
    Close();
}

NewWindow.xaml:

<Window x:Class="WpfApp.NewWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="New Window" Height="150" Width="200">
    <Grid>
        <TextBlock Text="Hello, World!" VerticalAlignment="Center" 
                   HorizontalAlignment="Center" FontSize="20" />
    </Grid>
</Window>
结论

在本文中,我们展示了如何在 WPF 中使用按钮控件打开新窗口,并在打开新窗口之后关闭主窗口。我们介绍了如何创建新窗口,以及如何处理按钮单击事件,以打开新窗口并关闭主窗口。