带触摸屏的双/多显示器

时间:2012-09-17 09:25:29

标签: c# wpf winforms touch multiple-monitors

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

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

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

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

我希望找到类似的内容:Monitor.Current.IsTouchDisplay.CurrentDisplay.TouchEnabled

1 个答案:

答案 0 :(得分:2)

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