• 締切済み

WPFで、複数画像のどれをタッチしたか判断したい

WPFで、複数の画像を表示し、どれをタッチされたか判断するプログラムを作成しています。 ListViewコントロールに複数画像を配置し、タッチするところまでは問題ないのですが、そのタッチした画像のインデックスを取得できません。 どうすれば、そのインデックスを取得できますでしょうか? ご教示の程お願い申しあげます。 なお、タッチイベントコードを、下記に記します。 Private Sub ListView1_TouchDown(sender As Object, e As System.Windows.Input.TouchEventArgs) Handles ListView1.TouchDown If e.OriginalSource.ToString = "System.Windows.Controls.Image" Then 'ここで、タッチした画像インデックスを取得したい End If End Sub

みんなの回答

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.2

Touch関係のイベントを発生させられるデバイスを持っていないので推測での話なのですが、 e.OriginalSouceが、ListView1の要素の一つであるならば、 ListView1.Itemsの要素をループして、各要素とe.OriginalSourceを比較して、 同一ならそのインデックスが当たりであると思うのですがどうでしょうか?

ten002
質問者

お礼

ご回答ありがとうございます。 マウス操作であれば、画像クリックすれば、その画像が選択されますので、ループして比較することもできます。 しかし画像タッチでは、それができないのです。 例えば、A画像とB画像があるとします。 マウスでB画像をクリックすれば、選択され、イベントでその画像を特定できます。 画像タッチの場合、B画像をクリックしても、選択等されず、TouchDown イベントは発生しますが、B画像を特定できる手段がないようなのです。 感覚的には、ListViewコントロールの不具合に感じますが、タッチ環境が整っていない現状では、そういう仕様なのかもしれません。 せっかく回答いただいたのに、こんな返事となってしまい、申し訳ございません。 また何かありましたら、よろしくお願いいたします。

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

ListViewのSelectedIndexではダメですか?

ten002
質問者

お礼

回答ありがとうございます。 マウスの場合、画像マウスクリック→選択状態、でインデックスを取得できます。 ですが、タッチの場合、画像タッチで選択状態になってくれません。 画像タッチのイベントが発生するだけで、タッチした画像のインデックスはわからないままなのです。 せっかくの回答なのに、申し訳ございません。 他に、インデックスを取得する方法などないでしょうか? 他の標準コントロールでの代用でも結構です。 よろしくお願いいたします。

関連するQ&A