Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止WPF应用程序在打开新窗口时关闭主窗口?_C#_Wpf - Fatal编程技术网

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();
 }