11

我有一个 Silverlight 4 应用程序,它极大地受益于对许多控件的本机鼠标滚轮支持。承载应用程序的页面有一个 HTML 驱动的下拉菜单,通常会覆盖 Silverlight 控件。

在 IE 中,我必须启用无窗口模式才能让覆盖菜单正常工作(Firefox 3.6 没有它也能正常工作)。但是,启用无窗口模式会阻止 Firefox 支持鼠标滚轮事件,而无需围绕 HTML DOM 桥进行额外编码。

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

4

2 回答 2

2

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

  1. IE 从来都不是问题
  2. 鼠标滚轮事件永远不会在浏览器之外的 OS X 上工作,只能通过浏览器内的 HTML DOM。
  3. 在所有其他浏览器中无 Windows 是不行的,因为它们依赖NPAPI来处理事件。
  4. 如您所述,您可以获取具有浏览器互操作性功能的鼠标滚轮,以从 DOM 获取鼠标滚轮。
  5. 全屏时 HTML DOM 将永远无法工作

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

于 2011-03-16T23:13:48.213 回答
0

也许您可以使用自己的 MouseWehhenManager 单例类,该类在内部考虑 DOM 和 MouseWheelAPI 事件并以通用方式提供它们,因此您的代码可以使用这个单一接口,无论哪种方式都可以工作?

于 2011-01-04T11:24:27.140 回答