如何检测设备是否在c#中为WinForms应用程序(非WPF)启用了触控功能。
我发现有关GetSystemMetrics的信息......无法在c#中找到如何使用它。
我尝试使用System.Windows.Input.Tablet类......即使我使用.Net Framework 4.5,也不会出现在c#中。
我尝试使用System.Windows.Devices ...不会出现在c#中,即使我使用的是.Net Framework 4.5。
答案 0 :(得分:9)
GetSystemMetrics似乎是正确的方法。它应该通过p / invoke访问,如下所示:
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);
public static bool IsTouchEnabled()
{
int MAXTOUCHES_INDEX = 0x95;
int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX);
return maxTouches > 0;
}
答案 1 :(得分:1)
var hasTouch = Windows.Devices.Input
.PointerDevice.GetPointerDevices()
.Any(p => p.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch);