带触摸屏的双/多显示器

Mat*_*ias 11 c# wpf multiple-monitors touch winforms

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

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

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

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

我希望找到像:Monitor.Current.IsTouch或者Display.CurrentDisplay.TouchEnabled

The*_*ide 2

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