如何检测 Windows 设备是否支持触摸
本文关键字:是否 支持 触摸 Windows 何检测 检测 | 更新日期: 2023-09-27 18:36:22
如何检测设备是否在 C# 中为 WinForms 应用(不是 WPF)启用了触摸功能。
-
我找到了有关
GetSystemMetrics
的信息。但是我找不到如何在 C# 中使用它。 -
我尝试使用
System.Windows.Input.Tablet
类。但是它不会出现在C#中,即使我使用的是.NET Framework 4.5。 -
我尝试使用
System.Windows.Devices
.但是它不会出现在C#中,即使我使用的是.NET Framework 4.5。 -
我还检查了检测Windows 8应用商店应用程序是否具有触摸屏以及如何检测支持触摸的设备(Win 8,C#.NET),这似乎使这个问题重复。 但是,这些都没有回答我的问题。
GetSystemMetrics
似乎是正确的方法。它应该通过 P/Invoke 访问,如下所示:
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);
public static bool IsTouchEnabled()
{
const int MAXTOUCHES_INDEX = 95;
int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX);
return maxTouches > 0;
}
取自这个答案
var hasTouch = Windows.Devices.Input
.PointerDevice.GetPointerDevices()
.Any(p => p.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch);