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

Gar*_*aul 11 silverlight mousewheel windowless silverlight-4.0

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

在IE中,我必须启用无窗口模式以允许覆盖菜单正常工作(Firefox 3.6在没有它的情况下正常工作).但是,启用无窗口模式可防止Firefox支持鼠标滚轮事件,而无需在HTML DOM桥接器周围进行额外编码.

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

Kei*_*ler 2

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

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

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