【问题标题】:Silverlight 4, Mouse Wheel Events and Windowless ModeSilverlight 4、鼠标滚轮事件和无窗口模式
【发布时间】:2011-02-10 02:03:55
【问题描述】:

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

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

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

【问题讨论】:

  • 你有没有想过这个问题?我有同样的问题。
  • 不幸的是,没有。最后,我在后端实现了一些基于浏览器的逻辑。仍然想知道是否有“正确”的方法。

标签: silverlight silverlight-4.0 mousewheel windowless


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-14
      • 1970-01-01
      • 2010-10-03
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多