[Windows ストア アプリ] クリック または タッチした座標を取得する

こんにちは、うりるーです。

使う言語: Visual Basic

今回はクリック または タッチした座標を取得する方法について書いていきます。
この座標を取得する方法ではマウスでクリックした座標に加え、タッチ や ペン / スタイラスで接触したところ座標も 1回取得できます。マルチタッチについては PointerId を使うことで取得できるようですが、あいにくタッチ入力のできるデバイスを持っていないため、この記事ではマルチタッチ入力には考慮しないことにします。

参考: クイック スタート: ポインター (C#/VB/C++ と XAML を使った Windows ストア アプリ) (Windows)

まず、画面に名前を付けるために、画面全体を選択してプロパティ ウィンドウ内にある「名前」に画面全体に付ける名前を入力します。画面の名前は MainPageScreen にします。


次に取得した座標を表示するためにツールボックスから TextBlock を追加します。
TextBlock には PositionText という名前を付けて、座標を表示できるようにサイズを大きくします。


では座標を取得し TextBlock に出力するプログラムを書きます。
画面に名前を付けるときと同じように画面全体を選択してプロパティウィンドウの右上にある雷アイコン(選択した要素のイベント ハンドラ―)をクリックし、PointerPressed のフォームに任意の名前を入力します。今回は MainPagePoniterPressed にします。


名前を入力し終えたら、そのまま Enter を押して決定します。
決定すると自動的に MainPage.xmal.vb に切り替わり、次のような画面全体に対し PointerPressed が行われたときに実行する処理のまとまりが自動で生成されます。


この Private Sub MainPagePointerPressed … と End sub の間に次のコードを入力します。

Dim TapPosition As Point = e.GetCurrentPoint(MainPageScreen).Position
PositionText.Text = "X: " & TapPosition.X & vbLf & "Y: " & TapPosition.Y

コードを入力するとこのような状態になります。


途中の & vbLf & は改行するためのコードです。
これでビルドして適当な場所をクリック または タップ すると、その場所の座標が TextBlock に表示されます。


次は今回の記事の続きとして特定の座標を原点とした座標とそこからの距離を取得する方法について書く予定です。

0 件のコメント:

コメントを投稿