【发布时间】:2014-02-03 06:17:15
【问题描述】:
在我的应用程序 (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(); 实际上工作:)
【问题讨论】:
-
为什么隐藏窗口没有关闭?您能否发布更多示例代码以阐明您在做什么?关闭时所做的任何事情都会破坏关闭信号?
-
在window1中,一些按钮被点击,改变了它的外观。我可以确定窗口并没有真正关闭,因为否则它们会被重置为默认值,而这并没有发生。我会看看我是否可以对上面的内容进行更多编辑以使其更清晰。
-
能否将 W1.Close() 放入 Try Catch 块并发布异常?
-
在我的编辑中发布了解决方案 :)