11

假设我有 2 台显示器。主显示器只是一个普通的 PC 桌面显示器,另一个是触摸屏。当我加载程序(WinForm、WPF、...)时,它将加载到主监视器上。

问题:如果我将程序替换为触摸屏,我如何知道当前的屏幕/显示器/显示器是触摸屏还是启用了触摸?

换句话说,我如何检测当前的屏幕/显示器/监视器及其设置?

到目前为止,我使用了Screen类 (Windows.Forms)、Tablet类 (Windows.Input) 和DLLImportUser32.dll (GetSystemMetrics())。它们中的任何一个或它们的组合都不起作用。

我想找到类似的东西:Monitor.Current.IsTouchDisplay.CurrentDisplay.TouchEnabled

4

1 回答 1

2

我没有触摸屏来对此进行测试,但您可能可以使用System.Windows.Input.Tablet来枚举静态 TabletDevices 属性。可以将ActiveSource属性与PresentationSource.FromVisual进行比较,以查看您的 UIElement 是否在 TabletDevice 上。这可能并不完美,我不习惯使用这些类,但这应该能让你走上正轨。TabletDevices 还有一个 Name 属性,您可以将其与System.Windows.Forms.Screen.DeviceName进行比较。

于 2012-09-19T15:19:45.890 回答