【发布时间】:2011-02-21 14:12:16
【问题描述】:
我有一个简单的应用程序,它很小,应该漂浮在我所有其他窗口的顶部。几个小时后,我会注意到它不再位于我所有其他窗口的顶部,我想知道是否有人知道为什么会发生这种情况。
在此期间,我打开了新的应用程序(主要是 MS 2010 产品),几次锁定/解锁了我的电脑,点击了桌面快捷方式,并在屏幕上移动了应用程序(有时在屏幕之间移动,因为我有两台显示器) .
我无法按需复制该行为,但它每天至少发生一次。当它停止停留在顶部时,它会在我点击桌面快捷方式时隐藏起来,所以我认为 TopMost 属性以某种方式设置为 false。
<Window AllowsTransparency="True"
WindowStyle="None"
Topmost="True"
SizeToContent="WidthAndHeight"
MouseDown="Window_MouseDown"
ShowInTaskbar="False"
Background="Transparent"
SnapsToDevicePixels="True">
该应用程序非常简单......它就像一个虚拟国际象棋时钟一样工作,让我可以跟踪处理帮助台电话与实际开发所花费的时间。 MouseDown 事件只是触发应用程序的拖放行为,因为 WindowStyle 设置为 None。
我正在运行 WindowsXP,并且该应用程序是在 .Net 4.0 中构建的。
【问题讨论】:
-
运气好了吗?我也遇到了同样的问题,还没有找到可靠的解决方案。
-
@joeg 很遗憾,没有。我的窗口仍然间歇性地消失
-
在我的应用程序中,我一直在重现 Topmost 的损失。首先,我有一个最顶层的 WindowA。在另一个窗口 WindowB 中,我执行以下操作:(1) 设置 WindowB.Topmost = true,然后 (2) 调用 MessageBox.Show,然后 (3) 再次设置 WindowB.Topmost = false。在此之后,WindowA 将失去最顶层的状态。这很令人沮丧。