You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF C#技术求助:Page内按钮无法关闭当前窗口,仅能打开主窗口

问题解决:点击Page按钮后关闭当前AuthWindow并打开MainWindow

错误原因

你当前的代码里,AuthWindow AuthView = new AuthWindow();是新建了一个AuthWindow实例,不是当前正在显示的登录窗口。调用这个新实例的Close()方法,只会关闭刚创建的、从未显示过的窗口,自然无法关闭你正在使用的AuthWindow。

解决方案

要关闭当前承载Page的AuthWindow,你需要获取到这个窗口的实际实例,而不是新建一个。推荐使用Window.GetWindow(this)方法,它能找到包含当前Page的顶级窗口:

修改按钮点击事件代码如下:

private void LoginBtn_Click(object sender, RoutedEventArgs e)
{
    // 打开新的主窗口
    MainWindow MainView = new MainWindow();
    MainView.Show();

    // 获取当前承载Page的窗口(即AuthWindow)并关闭
    Window currentAuthWindow = Window.GetWindow(this);
    currentAuthWindow?.Close();
}

补充说明

  • Window.GetWindow(this)中的this指代当前的Page对象,该方法会遍历控件树,找到最顶层的窗口实例。
  • 使用?.空值运算符是为了避免空引用异常,确保找到窗口后再执行关闭操作。

内容的提问来源于stack exchange,提问作者Adtapum Mayomthong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:05:14