我有一个使用Microsoft的分层窗口在Windows 7上运行的应用程序http://msdn.microsoft.com/en-us/library/ms997507.aspx.此应用程序设置为具有30%的不透明度,它始终位于顶部,并且对事件是透明的(即:它将所有事件转发到其下的窗口).您可以将其视为您正在通过桌面查看的"屏幕".它目前被用作我们用户无所不在的反馈层.
我们尝试在Windows 8上运行相同的应用程序,并注意它在桌面模式下按预期工作,但没有任何内容覆盖开始菜单和其他metro应用程序.
有没有人知道是否有一个等效的总体顶部窗口模式适用于城域应用程序和Windows 8中的开始菜单?
Lai*_*Xue 13
对的,这是可能的.请看一下这个页面:
http://blogs.microsoft.co.il/blogs/pavely/archive/2012/05/16/windows-8-topmost-vs-topmost.aspx
特别是评论部分的第二篇文章:
最顶层的窗口也受可访问性设置的影响.如果您想要一个位于Metro顶部的窗口,则需要它来声明可访问性.以下是要点:
应用程序必须要求
uiAccess
(app.manifest)应用程序必须断言"最顶层"窗口定位(在Win32/
SetWindowPos
或WinForms/WPF的Topmost
属性中,以编程方式或其他方式)如果不进行更改到组策略设置,必须将其安装到一些可信的位置[
C:\Windows
,C:\Program Files
,C:\Program Files (x86)
.
如果您希望能够在任意位置运行它,则必须禁用安全设置:"用户帐户控制:仅提升安全位置中安装的UIAccess应用程序".
这是一样的设置
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignatures
,以0
所述应用程序无法在调试器中运行
如果是.NET应用程序:
清单必须嵌入在构建后的步骤中
应用程序必须具有"延迟签名"(意味着它不能从内置调试器运行,尽管您可以构建和附加 - 这是Microsoft所做的)
必须使用受信任的证书对应用程序进行签名.
必须将所述可信证书安装到受信任的根证书颁发机构(这很重要!它不能只是简单地安装)