Silverlight 4,鼠标滚轮事件和无窗口模式

时间:2010-04-20 10:37:59

标签: silverlight silverlight-4.0 mousewheel windowless

我有一个Silverlight 4应用程序,它可以从对许多控件的本机鼠标滚轮支持中获益匪浅。托管应用程序的页面有一个HTML驱动的下拉菜单,通常会覆盖Silverlight控件。

在IE中,我必须启用无窗口模式以允许叠加菜单正常工作(Firefox 3.6在没有窗口的情况下正常工作)。但是,启用无窗口模式prevents Firefox from supporting mouse wheel events,而无需围绕HTML DOM桥进行额外编码。

有什么方法可以告诉哪些浏览器需要无窗口,哪些浏览器没有它?理想情况下,我想使用HttpBrowserCapabilities信息来决定是否将属性设置为true,而不是硬编码“支持的”浏览器列表。

2 个答案:

答案 0 :(得分:2)

Silverlight 4支持鼠标滚轮事件,但有许多规则需要注意:

  1. IE永远不是问题
  2. 鼠标滚轮事件永远不会在浏览器的OS X上运行,并且只能通过浏览器中的HTML DOM运行。
  3. 所有其他浏览器中的Windows无法使用,因为它们依靠NPAPI来处理事件。
  4. 您可以使用具有浏览器互操作性功能的鼠标滚轮来获取DOM中的鼠标滚轮。
  5. 全屏
  6. 时,HTML DOM永远无法正常工作

    有关完整细分,请参阅http://msdn.microsoft.com/en-us/library/dd759034(v=vs.95).aspx

答案 1 :(得分:0)

也许您可以使用自己的MouseWehhenManager单例类,它在内部同时考虑DOM和MouseWheelAPI事件,并以通用方式提供它们,因此您的代码可以使用这个以任何方式工作的单一界面吗?