質問者
WebBrowser上でのGestureイベントの挙動について

全般的な情報交換
-
WebBrowserコンポーネント上でのGestureイベントの挙動について悩んでいます。
例えば以下のコードの様に Grid にGestureListenerを追加してジェスチャーイベントを取得する場合、grid上に配置したRectangle 等のコンポーネント上でのタッチ操作でもFlickイベントやDragイベントが発生します。
しかし、WebBrowser上でのタッチ操作によるイベントの発生はWP7のバージョンによって異なります。
- Nodo デバイスでは WebBrowser 上でのタッチパネル操作でGestureイベントは発生しません
- Mangoβ2デバイスではWebBrowser 上でのタッチパネル操作でGestureイベントが発生しました
- Mango Build 7712 デバイスではWebBrowser 上でのタッチパネル操作でGestureイベントが発生したり、しなかったりします
<Grid x:Name="grid1" Background="Blue" Height="700"> <toolkit:GestureService.GestureListener > <toolkit:GestureListener Flick="ls_Flick" DragCompleted="ls_DragCompleted"/> </toolkit:GestureService.GestureListener> <phone:WebBrowser HorizontalAlignment="Center" Name="webBrowser1" VerticalAlignment="Top" Width="400" Height="300" /> <Rectangle Height="200" HorizontalAlignment="Center" Name="rectangle1" VerticalAlignment="Bottom" Width="380" Fill="Green" /> </Grid>
void ls_Flick(object sender, FlickGestureEventArgs e) { System.Diagnostics.Debug.WriteLine(sender.ToString() + "flick(" + e.HorizontalVelocity + "),(" + e.VerticalVelocity + ") "+e.Direction); } void ls_DragCompleted(object sender, DragCompletedGestureEventArgs e) { System.Diagnostics.Debug.WriteLine(sender.ToString() + "drag(" + e.HorizontalVelocity + "),(" + e.VerticalVelocity + ")"); }
Build 7712 デバイスで色々と試した結果、WebBrowser上でのFlickイベント自体は記録されていて、Grid上やRectangle上でGestureイベントが発生したときに、まとめて通知されます。
また、Grid上をタッチしてそのままWebBrowserコンポーネント上まで指をスライドさせて離すと、それ以降WebBrowserコンポーネントでもGestureイベントが発生するようになります。
WebBrowser上でのタッチ操作イベントはWMの時からバージョンによって異なっていたので、それはそれで良いと思うのですが、上記のようにユーザの操作で挙動が変わってしまったり、他の操作でまとめてイベント通知されるのはバグではないかと思っています。
OS自体がまだまだβ段階なのでバグが残っているのもありえるかなと考えていますが、みなさんの意見をお聞かせ頂けないでしょうか?
- 移動 Mike Wang (MSCS) 2012年10月2日 11:19 (移動元:Windows Phone 7 向けの開発)
2011年7月31日 22:37
すべての返信
-
Toolkitを使ったジェスチャーですね。
まず、現在のSilverlight Toolkit は Windows Phone SDK 7.1 Beta を正式サポートしておりません。もちろん、Mangoの環境に対しても同様です。Mango の環境に正式サポートしたものは現在開発中ですので今しばらくお待ちください。
そして、この挙動については、OSやブラウザによるものではなく、Silverlight Toolkit の実相によるものです。問題があった場合は、Silverlight Toolkit のQ&Aで問い合わせることをお勧めします。
http://silverlight.codeplex.com/workitem/list/basic
Silverlight Toolkit はあくまでもオープンソースのライブラリであり、OSや開発環境の機能ではないことをご注意ください。
マイクロソフト エバンジェリスト 高橋 忍2011年8月1日 2:54