1

画像付きのリストボックスがあります。MouseMove をキャプチャしています。FF (Win7 & OSX) & IE8 では、マウスが画像上に移動するたびに発生します。ただし、Chrome (OSX 上) では、マウス ボタンが押されている間だけ起動します。このChromeの動作は実際には非常に便利ですが、特定のブラウザでランダムに発生させるのではなく、制御できる場合に限ります. それで、Chromeでこのように動作させる全体的な設定がどこかにあるのか、それともSL実装の不一致だけなのか、誰かが知っていますか? マウスボタンが押されているかどうかを SL でテストする方法を見つけることができなかったので、私は後者を疑っています。

助けてくれてありがとう。

4

1 に答える 1

0

私が理解している限り、問題はMouseMoveであり、マウスの左ボタンが押されたときにMouseEnterおよびMouseLeaveイベントは発生しません。

TextBox でも同じ問題がありました。実際、IEでも発生し、私のグーグルはそれが設計によるものであると私に言いました。さらにグーグルすると、要素がCaptureMouse()メソッドを使用してマウスをキャプチャしているという理由が明らかになりました。したがって、TextBox から派生し、OnMouseMove(...)メソッドをオーバーライドしました。

protected override void OnMouseMove(MouseEventArgs e)
{
    base.OnMouseMove(e);
    ReleaseMouseCapture();
}

注: このメソッドの基本実装が行うのはマウスのキャプチャだけかどうかはわかりません。そのため、呼び出し後にReleaseMouseCapture()を追加しましたが、もちろんコメント アウトすることもできます。

于 2012-02-28T08:23:20.437 に答える