WPF中如何调用前一个窗口?恢复原窗口可见性咨询
WPF 返回前一个窗口并恢复可见性的方法
针对你遇到的场景,有两种常用实现方式,可根据窗口交互需求选择:
方法一:使用模态窗口(ShowDialog)
这种方式适合需要用户处理完新窗口才能回到原窗口的场景,实现最简单:
Buyer_Login BuyerWindow = new Buyer_Login(); this.Visibility = Visibility.Hidden; BuyerWindow.ShowDialog(); // 代码会在此暂停,直到BuyerWindow关闭 this.Visibility = Visibility.Visible; // 窗口关闭后自动恢复原窗口可见性
关闭BuyerWindow时直接调用this.Close()即可,原窗口会自动恢复显示。
方法二:非模态窗口传递引用
如果需要保持两个窗口可同时交互(非模态),可以通过设置窗口所有者传递原窗口引用:
- 在原窗口打开BuyerWindow时,设置它的
Owner为当前窗口:
Buyer_Login BuyerWindow = new Buyer_Login(); BuyerWindow.Owner = this; this.Visibility = Visibility.Hidden; BuyerWindow.Show();
- 在Buyer_Login窗口中,关闭时恢复原窗口的可见性:
可以在关闭按钮的点击事件中编写逻辑:
private void CloseBtn_Click(object sender, RoutedEventArgs e) { Owner?.Visibility = Visibility.Visible; this.Close(); }
或者订阅窗口的Closing事件,确保无论哪种关闭方式都能恢复原窗口:
public Buyer_Login() { InitializeComponent(); Closing += (s, e) => Owner?.Visibility = Visibility.Visible; }
内容的提问来源于stack exchange,提问作者Brayden Chapple
相关产品推荐
相关产品推荐

