我有三个窗口,一个开始窗口,一个包含概述的窗口和一个包含详细信息的窗口。
当我打开带有概述的窗口时,开始窗口必须隐藏,当我从概述中打开详细信息时,概述必须隐藏,当我关闭详细信息时,概览可能再次可见。
这就是我用来隐藏窗户的东西
this.Visibility = Visibility.Collapsed;
_frmDetail.showDialog();
this.Visibility = Visibility.Visible;但是当我这样做的时候,不仅仅是我的概览,当我关闭细节时,我也会变得可见,而且我只想在我的概览结束时显示它。
发布于 2013-11-19 12:26:13
对于用户来说,这是一个奇怪的、潜在的烦人的应用程序需求,这是您在这里询问的。在一个Window中显示不同的视图比在一个Window中显示不同的视图要常见得多,但您仍然有权这样做。
你基本上需要一个父类,也许是MainWindow.xaml.cs?这个类可以保存对三个Window的引用,并负责打开和关闭,或者隐藏和显示它们。您可以使用这样的方法来打开/显示一个新的Window,并隐藏其他的:
private void DisplayWindow(Window windowToShow)
{
for (int i = 0; i < Application.Current.Windows.OfType<Window>().
Where(w => w.IsVisible).Count(); i++)
{
Window windowToHide = Application.Current.Windows[i];
windowToHide.Visibility = Visibility.Collapsed;
}
windowToShow.Visibility = Visibility.Visible;
}然后,每当您需要显示一个新的Window时,您可以这样称呼它:
DisplayWindow(_frmDetail);发布于 2013-11-19 11:26:54
在您的代码中,您将可见性设置为折叠,然后显示一个对话框,然后再次设置可见性。我不太确定你在做什么,也不知道你叫什么window。
在任何情况下,一个简单的解决方案都可以是将3项重叠在一起(例如,在同一个网格中),并将其可见性设置为属性,如:ShowMain、ShowOverview和ShowDetails。
现在,当您需要一个属性时,将该属性设置为可见属性,将另两个属性设置为折叠属性,您的问题就解决了(这些都位于同一个窗口中)。
发布于 2013-11-19 11:27:07
最小化它并将ShowInTaskbar设置为false。
this.ShowInTaskbar = false;
this.WindowState = System.Windows.WindowState.Minimized;https://stackoverflow.com/questions/20069459
复制相似问题