如何关闭隐藏窗口(WPF应用程序)

本文关键字:WPF 应用程序 窗口 何关闭 隐藏 | 更新日期: 2023-09-27 18:21:36

在我的应用程序(WPF)中,我有一个窗口:

CCD_ 1和Xaml x:Class="WpfApplication1.Window1"

现在,当我从主窗口切换到窗口1并返回时,我使用Visibility。Hidden和Visibility。Visible来隐藏它们,并使它们再次显示给用户。

我现在要做的是在主窗口中制作一个测试按钮,上面写着:关闭Window1。这个窗口是隐藏的,但我真的想在后台关闭它。起初我想只使用Window.Close();,但这似乎并没有起到作用。

那么,我应该如何以正确的方式做到这一点呢?事先非常感谢。

编辑1-使问题更加清晰

要打开主窗口中的窗口1,我使用此部分

Window1 W1 = null; // Initialise Field.
  public void CalcTabel_Click(object sender, RoutedEventArgs e)
   {
    if (W1 == null)
    {
     W1 = new Window1();
     W1.Hoofdmenu = this;
     W1.checkLang();
     W1.Show();
    }
   else
    {
     W1.checkLang();
     W1.Visibility = Visibility.Visible;
    }
   this.Visibility = Visibility.Hidden;
   }

在窗口1上有一个后退按钮,里面有这个代码片段(其中"Hoofdmenu"是主窗口):

Hoofdmenu.updateStatistics();
Hoofdmenu.Visibility = Visibility.Visible;
this.Visibility = Visibility.Hidden;

但是,这一次当我站在主窗口中时(因此窗口1被隐藏)我想关闭该窗口1。但是使用CCD_ 4似乎不起作用。因此,我正在寻找一种关闭窗口1的方法,而不是更改其可见性。

编辑2-解决方案

因此,使用W1.Close();确实起到了而不是的作用,尽管this.W1.Close();的一个小变化实际上起到了作用:)

如何关闭隐藏窗口(WPF应用程序)

您可以在窗口中创建Form2的对象,并将其可见性初始化为false。

点击按钮,你可以简单地说

public partial class MainWindow : Window
  {
    private Window1 window2;
    public MainWindow()
    {
      InitializeComponent();
      this.window2 = new Window1();
      this.window2.Show();
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
      this.window2.Visibility = System.Windows.Visibility.Hidden;
    }
  }

使其再次可见

在阅读了您的代码后,这是不可能的。window1实例是本地对象。所以如果用这种方法,你就不能把它伸到一边。最好的方法是在window1上有一个关闭按钮。close()或者在主窗口中创建一个全局实例,然后检查是否为null,然后关闭它。