gpt4 book ai didi

c# - WPF 中的显示对话框

转载 作者:行者123 更新时间:2023-11-30 13:38:19 33 4
gpt4 key购买 nike

当我在 WPF 中两次调用 ShowDialog 时,第一个窗口正常打开,关闭后第二个窗口没有出现。

<Application 
x:Class="Test.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="App_OnStartup">
</Application>

private void App_OnStartup(object sender, StartupEventArgs e)
{
var windowA = new WindowA();
windowA.ShowDialog();

var windowB = new WindowB();
windowB.ShowDialog();
}

窗口A:

<Window x:Class="Test.WindowA"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WindowA" Height="129.452" Width="313.356">
<Grid>
<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="139,54,0,0"/>
</Grid>
</Window>

public partial class WindowA : Window
{
public WindowA()
{
InitializeComponent();
}
}

窗口B:

<Window x:Class="Test.WindowB"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WindowB" Height="221.918" Width="300">
<Grid>
<RadioButton Content="RadioButton" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="124,63,0,0"/>
</Grid>
</Window>

public partial class WindowB : Window
{
public WindowB()
{
InitializeComponent();
}
}

最佳答案

在 WPF 中,您可以指定应用程序何时关闭,默认情况下 Application.ShutdownModeOnLastWindowClose 这意味着当最后一个 Window 关闭时,应用程序将关闭,在您的情况下,第一个 Window 也是最后一个。当您打开和关闭第一个 Window 时,您的应用程序将关闭,这就是您看不到第二个 Window 的原因。您需要将 ShutdownMode 更改为 OnExplicitShutdown

<Application ... ShutdownMode="OnExplicitShutdown"/>

但这意味着即使您关闭所有 Windows 应用程序仍在运行,因此您必须显式调用 Application.Shutdown()关闭您的应用程序,例如当主窗口关闭时。

关于c# - WPF 中的显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17697715/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com