gpt4 book ai didi

c# - 在 Windows 10 (1803) 上,如果 WPF 透明窗口覆盖在所有应用程序上,所有应用程序都会失去触摸或手写笔

转载 作者:太空狗 更新时间:2023-10-29 21:42:56 24 4
gpt4 key购买 nike

如果我创建一个新的 WPF 应用程序,它带有一个简单的空窗口,如下所示,我发现 WPF 应用程序涵盖的所有应用程序都失去了触摸或手写笔 react 。这只有在 Windows 10 升级到 1803 (10.0.17134.0) 时才能重现。

<Window x:Class="TheWPFCoveringWindow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStyle="None" WindowState="Maximized"
AllowsTransparency="True" Background="Transparent"
Topmost="True">
<Button Content="Test" Width="200" Height="100" />
</Window>

我编写了另一个 WPF 应用程序来了解发生了什么。所以我向窗口添加了一个 StylusDown 事件,如下所示的代码:

// 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 August 2018 Preview of Quality Rollup 中修复此问题.

Addresses an issue where touch and mouse events were handled differently in Windows Presentation Foundation (WPF) applications that have a transparent overlay window.


原创

经过整整一周的调试,终于找到了解决办法。

只需为窗口添加一个ResizeMode="NoResize" 属性,如下代码所示:

<Window x:Class="TheWPFCoveringWindow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStyle="None" WindowState="Maximized"
AllowsTransparency="True" ResizeMode="NoResize"
Background="Transparent" Topmost="True">
<Button Content="Test" Width="200" Height="100" />
</Window>

@lindexi 已将此问题和此解决方案发布到他的帖子中。如果您想了解有关此问题的更多信息,请阅读 win10 17025 touch bug - lindexi更多细节。 (这篇文章是用多种语言写的,所以即使你忽略不明字符,你也不会错过任何东西。)

实际上,我仍然不明白为什么这个属性有帮助。

谁能解释一下这个问题的原因?

关于c# - 在 Windows 10 (1803) 上,如果 WPF 透明窗口覆盖在所有应用程序上,所有应用程序都会失去触摸或手写笔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50382605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com