Silverlight MouseMove Chrome与FF / IE的不一致

时间:2010-06-22 00:07:49

标签: silverlight google-chrome mousemove

我有一个包含图片的列表框。我正在捕捉MouseMove。在FF(Win7& OSX)&同样在IE8中,只要鼠标移动到图像上,就会触发。但是,在Chrome(在OSX上),只有在按下鼠标按钮时才会触发。这种Chrome行为实际上非常有用,但前提是我可以控制它,而不是仅仅在某些浏览器上随机发生。那么是否有人知道某些整体设置是否会使其在Chrome中以这种方式运行,或者它只是SL实施中的不一致? 我怀疑是后者,因为我从来没有能够在SL中找到测试鼠标按钮是否关闭的方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

据我所知,问题是MouseMove,当鼠标左键关闭时,不会触发MouseEnter和MouseLeave事件。

我遇到了与TextBox相同的问题。实际上它也发生在IE浏览器中,我的谷歌搜索告诉我它是如此设计。进一步的谷歌搜索揭示了原因:该元素使用 CaptureMouse()方法捕获鼠标。所以我刚从TextBox派生并覆盖 OnMouseMove(...)方法:

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

注意:我不确定,捕获鼠标是否是此方法基本实现的唯一方法,因此我在调用后添加了 ReleaseMouseCapture(),但是将其注释也有效,当然。