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

时间:2012-01-28 13:25:42

标签: c# wpf window

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

public partial class Window1 : Window和Xaml x:Class="WpfApplication1.Window1"

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

我现在尝试做的是在主窗口中创建一个测试按钮,即:关闭Window1。 这个窗口是隐藏的,但我真的想在后台关闭它。 起初我虽然只是使用Window.Close();,但似乎没有做到这一点。

那么,我该如何以正确的方式做到这一点? 非常感谢你提前。

编辑1 - 使问题更清晰

要在我的主窗口中打开window1,我将使用此部分

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.但使用W1.Close()似乎不起作用。所以我正在寻找一种关闭窗口1的方法,改变其可见性。

编辑2 - 解决方案

所以使用W1.Close();做了而不是工作,虽然实际上有一点点改变this.W1.Close();确实有效:)

2 个答案:

答案 0 :(得分:1)

您可以在窗口中创建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;
    }
  }

让它再次可见

答案 1 :(得分:0)

阅读完你的代码之后,那就不可能按照你想要的方式了。 window1实例是本地对象。所以如果这种方法,你不能把它伸出去。 最好的是在window1上有一个关闭按钮with this.close() 或者在主窗口中创建一个全局实例,然后检查是否为null然后关闭它。