Подтвердить что ты не робот

Двойной/мульти монитор с сенсорным экраном

Притворись, что у меня 2 монитора. Первичный дисплей - это обычный ПК для настольных ПК, другой - сенсорный. Когда я загружаю программу (WinForm, WPF,...), она будет загружаться на основной монитор.

Вопрос: если я заменю программу на сенсорный экран, как я могу узнать, включен ли текущий экран/дисплей/монитор сенсорным экраном или сенсорный экран?

Другими словами, как я могу определить текущий экран/дисплей/монитор и его настройки?

До сих пор я работал с классом Screen (Windows.Forms), Tablet Class (Windows.Input) и DLLImport пользователя User32.dll(GetSystemMetrics()). Ни один из них или их комбинация не работает.

Я хочу найти что-то вроде: Monitor.Current.IsTouch или Display.CurrentDisplay.TouchEnabled

4b9b3361

Ответ 1

У меня нет сенсорного экрана, чтобы проверить это, но вы, вероятно, можете использовать System.Windows.Input.Tablet для перечисления через статическое свойство TabletDevices, Свойство ActiveSource можно сравнить с PresentationSource.FromVisual чтобы узнать, находится ли ваш UIElement на TabletDevice. Это может быть не идеально, я не привык к использованию этих классов, но это должно привести вас к правильному пути. TabletDevices также имеют свойство Name, которое вы можете сравнить с System.Windows.Forms.Screen.DeviceName.