C# 如何防止WPF应用程序在打开新窗口时关闭主窗口?
我使用此方法从主窗口显示另一个窗口C# 如何防止WPF应用程序在打开新窗口时关闭主窗口?,c#,wpf,C#,Wpf,我使用此方法从主窗口显示另一个窗口 public void DisplayLobbyWindow() { var d = Application.Current.Dispatcher; if (d.CheckAccess()) { new LobbyWindow() { Owner = this }.Show();
public void DisplayLobbyWindow()
{
var d = Application.Current.Dispatcher;
if (d.CheckAccess())
{
new LobbyWindow()
{
Owner = this
}.Show();
this.Close();
}
else
{
d.BeginInvoke((Action)DisplayLobbyWindow);
}
}
但是,当我显示新应用程序时,主应用程序关闭。我不想它关闭,我只想让第一个窗口消失,然后显示下一个窗口。怎么可能呢?谢谢
编辑:我想可能是因为所有者属性设置为主窗口-但是我需要它在主窗口的位置启动,所以我将所有者设置为它。有解决方法吗?修改代码以隐藏窗口。您还可以指定启动位置,因为您说过希望新窗口在旧窗口所在的位置弹出
public void DisplayLobbyWindow()
{
...
new LobbyWindow()
{
Owner = this,
WindowStartupLocation = WindowStartupLocation.CenterOwner
}.Show();
this.Hide();
...
}
然后在第二个表单中,订阅Closed
事件:
<Window x:Class="WpfApplication1.LobbyWindow"
Title="LobbyWindow" Closed="LobbyWindow_OnClosed">
你不能用这个.hide()代替这个.close()吗?
private void LobbyWindow_OnClosed(object sender, EventArgs e)
{
Owner.Show();
}