弹出窗口(在WPF UIAccess应用程序中)未在Windows 10中呈现

时间:2015-09-19 21:39:23

标签: wpf popup windows-10 mahapps.metro

我编写的应用程序(https://github.com/JuliusSweetland/OptiKey)请求UIAccess(能够在所有内容之上呈现)并且具有使用MahApps.Metro设置样式的模式弹出窗口。在Windows 8 / 8.1上运行时一切都很好,但在Windows 10上,弹出窗口不会显示(不会在任何地方呈现),但在任务栏中可见。将鼠标悬停在缩略图上会显示预览,但永远不会显示窗口。

我已将问题缩小到Windows 10,并且清单中的 UIAccess =“true”设置是否为true / false(如果设置为false则可以。)

我最初认为问题与.Net 2.0.0.0运行时没有出现在Windows 10的默认安装上,因为当我安装Snoop(我认为安装了.Net 3.5等2.0)时问题就消失了.0.0运行时),但为了证明我卸载.Net 3.5的修复,它带回了子窗口的问题,然后重新安装了.Net 3.5,它没有再次解决问题。

我尝试了以下内容:

  1. 以admin = no fix
  2. 运行应用程序
  3. 更新所有图形驱动程序=无修复
  4. 检查事件日志=无
  5. 将我的子(弹出窗口)窗口转换为非模态=无修复
  6. 将我的子(弹出窗口)窗口转换为标准的Window类,而不是MetroWindow(MahApps)=无修复
  7. 4& 5 =没有修复
  8. 安装.Net 3.5 =无法修复
  9. 唯一有效的方法是设置UIAccess =“false”,但我需要它是真的。

    N.B。 UIAccess在Windows 8.1上运行正常,我已经满足了要求(向清单添加UIAccess =“true”,签署程序集,以及从受保护目录“Program Files”运行)

    知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

发现问题 - 作为启动子窗口的一部分,我将父窗口的TopMost属性设置为false(然后在子窗口关闭时将其设置回原始值)。关于设置parentWindow.TopMost = false的事情导致了不可见的子窗口问题。我删除了相关的行(在此提交中:https://github.com/JuliusSweetland/OptiKey/commit/e9031119a726518f54da94c64faceeee991b3747),一切都有效。