11

2 台のモニターがあるとします。プライマリ ディスプレイは通常の PC デスクトップ モニターで、もう 1 つはタッチスクリーンです。プログラム (WinForm、WPF など) をロードすると、プライマリ モニターにロードされます。

質問: プログラムをタッチスクリーンに置き換えた場合、現在のスクリーン/ディスプレイ/モニターがタッチスクリーンであるか、タッチが有効になっているかどうかを知るにはどうすればよいですか?

つまり、現在の画面/ディスプレイ/モニターとその設定をどのように検出できますか?

これまでのところ、Screenクラス (Windows.Forms)、Tabletクラス (Windows.Input)、およびDLLImportUser32.dll (GetSystemMetrics()) を使用しました。それらのどれも、またはそれらの組み合わせも機能しません。

次のようなものを見つけたい:Monitor.Current.IsTouchまたはDisplay.CurrentDisplay.TouchEnabled

4

1 に答える 1

2

これをテストするためのタッチスクリーンはありませんが、おそらくSystem.Windows.Input.Tabletを使用して、静的なTabletDevicesプロパティを介して列挙できます。ActiveSourceプロパティをPresentationSource.FromVisualと比較して、UIElementがTabletDevice上にあるかどうかを確認できますこれは完璧ではないかもしれません。私はこれらのクラスを使用することに慣れていませんが、それで正しい方向に進むはずです。TabletDevicesには、 System.Windows.Forms.Screen.DeviceNameと比較できるNameプロパティもあります。

于 2012-09-19T15:19:45.890 に答える