2011年12月17日土曜日

WebBrowser オブジェクトの Tap, DoubleTap イベントを拾う

xaml のプロパティでは各イベントハンドラが定義できます。 当然、定義したイベントに対してハンドラが呼ばれることを期待する訳ですが、呼ばれないものもあります。
例えば WebBrowser オブジェクトの Tap, DoubleTap イベントなどです。


なぜか。WebBrowser は既に double tap すると拡大・縮小するというハンドラが定義されています。そして処理済みのイベントに対しては後続のハンドラが呼ばれないことになっています。

これを回避するためには
webBrowser1.AddHandler(
WebBrowser.DoubleTapEvent , new EventHandler<GestureEventArgs>(webBrowser1_DoubleTap), true);
のようにAddHandler()を使ってハンドラを登録し、その第三引数で true を指定してコールバックするよう明示してあげる必要があります。

でも、定義済みのハンドラを外すのはどうしたらいいんだろう。 OnDoubleTap をオーバーライドすればいいのかしらん。

0 件のコメント:

コメントを投稿