2010-04-20 87 views
11

我有一个Silverlight 4应用程序,它可以从原生鼠标滚轮支持多种控件中受益匪浅。托管应用程序的页面具有HTML驱动的下拉菜单,通常会覆盖Silverlight控件。Silverlight 4,鼠标滚轮事件和无窗模式

在IE中,我必须启用无窗口模式才能让覆盖菜单正常工作(Firefox 3.6在没有它的情况下正常工作)。但是,启用无窗口模式prevents Firefox from supporting mouse wheel events而无需在HTML DOM网桥附近进行额外的编码。

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

+0

你有没有想过这个?我有同样的问题。 – 2010-08-03 16:21:25

+0

不幸的是,没有。最后,我在后端基于浏览器实现了一些逻辑。仍然想知道是否有一个“正确”的方式来做到这一点。 – 2010-08-04 13:20:32

回答

2

的Silverlight 4对鼠标滚轮事件的支持,但也有一些规则需要注意的:

  1. IE从来都不是问题
  2. 鼠标滚轮事件从未在OS X上运行在浏览器外,并且只能通过浏览器中的HTML DOM。
  3. 所有其他浏览器中的无窗口是一个不行,因为他们依靠NPAPI来处理事件。
  4. 您可以通过浏览器互操作性功能获得Mousewheel,以便像您注意到的那样从DOM获得鼠标滚轮。当全屏

对于完全崩溃看到http://msdn.microsoft.com/en-us/library/dd759034(v=vs.95).aspx

  • HTML DOM不会有任何效果。

  • 0

    也许你可以使用你自己的MouseWehhenManager单例类,它在内部考虑DOM和MouseWheelAPI事件并以通用的方式提供它们,所以你的代码可以使用这个单一的接口,它可以工作吗?