在我的应用程序(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();
确实有效:)
答案 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然后关闭它。