[英]How to close a hidden window (WPF application)?
在我的应用程序(WPF)中,我有以下窗口:
public partial class Window1 : Window
和Xaml中的x:Class="WpfApplication1.Window1"
现在,当我从主窗口切换到窗口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();
确实工作了:)
您可以在窗口中创建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上使用this.close()关闭按钮,或者在主窗口中创建一个全局实例,然后检查是否不为null,然后将其关闭。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.