前提・実現したいこと
タッチ操作で拡大縮小できるリストボックスが欲しくなりテストプログラムを作っていたのですが、思った通りの動作をさせることができません。
プログラムの動作としては、
1.ReactiveCollection<Person>をリスト表示
2.ピンチイン・ピンチアウトで拡大表示
3.リストをタップすると詳細(別画面)表示
をさせたいと思っています。
やってみたこと
1.リストボックスにマニピュレーション系イベントハンドラを追加しても呼ばれない
→ 「PanningMode="None"」で呼ばれるようになる
2.「PanningMode="None"」にすると「SelectionChanged」等のイベントが発生しない
→ 何処が押されたかわからないので、他の手段を考える
3.タッチダウンイベントで処理
TouchEventArgsのOriginalSourceからDataContextを取得し、Personだったらそのアイテムが押されたんだなと認識
あとは、動かさずに手を離したら(ManipulationCompleted)TouchDownで保存したアイテムが押されたものとしています。
問題点
TouchDownイベントとManipulation系を混ぜて使うと、各呼び出しのタイミング調整が難しい。
・ManipulationCompletedより先にTouchDownが来る
・慣性動作時のタッチのタイミング
・等々
ListBoxなので、ScrollViewerにアクセスするのが面倒
・慣性動作の強制停止
・一番上、一番下の判断
・等々
何かやり方はないものでしょうか。
補足情報(FW/ツールのバージョンなど)
VisualStudio 2019 (V16.10.0)
Prism V8
あなたの回答
tips
プレビュー