在Windows 10(1803)上,如果WPF透明窗口覆盖它们,则所有应用程序都会丢失触摸或手写笔
如果我使用一个简单的空窗口创建一个新的WPF应用程序,如下面所示的代码,我发现WPF应用程序覆盖的所有应用程序都失去了触摸或手写笔反应。 只有在Windows 10升级到1803(10.0.17134.0)时才能重现此问题。
我写了另一个WPF应用程序来找出发生了什么。 所以我将一个StylusDown事件添加到Window,如下所示的代码:
// This code is in another WPF application. private void OnStylusDown(object sender, StylusDownEventArgs e) { // Set a breakpoint here. }
但是在我关闭顶部的透明WPF窗口之前,断点从未到达。
我将非常简单的代码推送到GitHub: dotnet-campus / TouchIssueOnWindows10.0.17134 。 克隆它可能会有所帮助。
为什么会发生这种情况以及如何解决? 任何回复表示赞赏。
更新
Microsoft已在.NET Framework 2018年8月质量汇总预览中解决了此问题。
- 2018年8月30日-KB4346783(OS Build 17134.254)
解决了在具有透明覆盖窗口的Windows Presentation Foundation(WPF)应用程序中以不同方式处理触摸和鼠标事件的问题。
原版的
经过一个星期的调试,我终于找到了解决方案。
只需为Window添加ResizeMode="NoResize"
属性,如下所示:
@lindexi已将此问题及此解决方案发布到他的post中。 如果您想了解有关此问题的更多信息,请阅读win10 17025 touch bug – lindexi了解更多详情。 (这篇文章是用多种语言编写的,所以即使忽略了未知的字符,你也不会错过任何内容。)
实际上,我仍然无法弄清楚为什么这个属性会有所帮助。
谁能解释这个问题的原因?