首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏并显示多个WPF Windows

隐藏并显示多个WPF Windows
EN

Stack Overflow用户
提问于 2013-11-19 10:50:11
回答 4查看 4K关注 0票数 0

我有三个窗口,一个开始窗口,一个包含概述的窗口和一个包含详细信息的窗口。

当我打开带有概述的窗口时,开始窗口必须隐藏,当我从概述中打开详细信息时,概述必须隐藏,当我关闭详细信息时,概览可能再次可见。

这就是我用来隐藏窗户的东西

代码语言:javascript
复制
this.Visibility = Visibility.Collapsed;
_frmDetail.showDialog();
this.Visibility = Visibility.Visible;

但是当我这样做的时候,不仅仅是我的概览,当我关闭细节时,我也会变得可见,而且我只想在我的概览结束时显示它。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-19 12:26:13

对于用户来说,这是一个奇怪的、潜在的烦人的应用程序需求,这是您在这里询问的。在一个Window中显示不同的视图比在一个Window中显示不同的视图要常见得多,但您仍然有权这样做。

你基本上需要一个父类,也许是MainWindow.xaml.cs?这个类可以保存对三个Window的引用,并负责打开和关闭,或者隐藏和显示它们。您可以使用这样的方法来打开/显示一个新的Window,并隐藏其他的:

代码语言:javascript
复制
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时,您可以这样称呼它:

代码语言:javascript
复制
DisplayWindow(_frmDetail);
票数 1
EN

Stack Overflow用户

发布于 2013-11-19 11:26:54

在您的代码中,您将可见性设置为折叠,然后显示一个对话框,然后再次设置可见性。我不太确定你在做什么,也不知道你叫什么window

在任何情况下,一个简单的解决方案都可以是将3项重叠在一起(例如,在同一个网格中),并将其可见性设置为属性,如:ShowMainShowOverviewShowDetails

现在,当您需要一个属性时,将该属性设置为可见属性,将另两个属性设置为折叠属性,您的问题就解决了(这些都位于同一个窗口中)。

票数 0
EN

Stack Overflow用户

发布于 2013-11-19 11:27:07

最小化它并将ShowInTaskbar设置为false。

代码语言:javascript
复制
        this.ShowInTaskbar = false;
        this.WindowState = System.Windows.WindowState.Minimized;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20069459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档