繁体   English   中英

使窗口从折叠可见后的所有其他窗口下的WPF窗口

[英]WPF Window under all other windows after making window visible from being collapsed

我的WPF窗口出现一些令人沮丧的问题。 我要设计的是:

当用户最小化窗口时,它将最小化为系统任务栏图标(将窗口和图标隐藏在开始栏上)。 当用户右键单击该图标时,将显示一个带有选项的上下文菜单,其中一个选项将说“打开”,这将打开该应用程序(再次显示窗口/取消隐藏窗口)。 用户也可以双击图标。

很简单吧?

我没有任何问题最小化到任务栏,我只对窗口的关闭事件执行以下操作:

e.Cancel = true;
this.Visibility = Visibility.Collapsed;

但是,我在正确还原窗口时遇到了问题。 我只需在上下文菜单中单击“ click”或“图标”双击事件即可:

this.Visibility = Visibility.Visible;
this.Activate();

问题是该窗口再次位于带有其图标的开始栏上,但位于用户打开的每个窗口的后面。 我想要这样,以便当用户打开窗口时它将是最上面的窗口。 我并不总是希望它成为最高的,只是当他们想再次使它可见时。

我尝试了很多事情,例如将show show on on window设置为true,使其可见后等待一秒钟,然后再激活该窗口,多次激活该窗口(工作了几次,但可能是10次尝试中的1次),等等。 ..

我不认为显示/隐藏窗口会很烦人,而且我不确定自己做错了什么。

任何帮助表示赞赏,谢谢。

仅在发布此内容后我才意识到,应用程序在隐藏之前先最小化。 当我显示窗口时,它显示为最小化。

知道此问题后,我得以解决此问题。 这可以帮助确实决定最小化后隐藏窗口的其他人。

编辑这是我用来隐藏窗口的代码(在事件触发状态更改为[最小化]之后调用):

Application.Current.MainWindow.Visibility = Visibility.Collapsed;
Application.Current.MainWindow.WindowState = WindowState.Normal;

您会发现在隐藏窗口状态后,我将其恢复为正常状态。 即使窗口是隐藏的并且不呈现,它也会在内存中恢复窗口的位置/大小。

然后,当我想再次看到该窗口时,我只是这样做:

Application.Current.MainWindow.Visibility = Visibility.Visible;

这将显示窗口就好了!

希望这可以帮助某人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM