如何关闭隐藏窗口(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();
的一个小变化实际上起到了作用:)
您可以在窗口中创建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,然后关闭它。