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

在IE中,我必须启用无窗口模式以使覆盖菜单正常工作(Firefox 3.6通常没有它)。但是,启用无窗模式 防止Firefox支持鼠标车轮事件 没有围绕HTML DOM桥的其他编码。

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

有帮助吗?

解决方案

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

  1. IE从来都不是问题
  2. 鼠标轮事件永远不会在浏览器中使用OS X,并且只能通过HTML DOM In-In-browser工作。
  3. 在所有其他浏览器中无窗都是不做的,因为它们依靠 NPAPI 处理事件。
  4. 如您所述,您可以获取具有浏览器互操作性功能的鼠标轮,以从DOM到达鼠标轮。
  5. 全屏时HTML DOM永远不会工作

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

其他提示

也许您可以使用自己的MouseWehhenManager Singleton类,该类在内部考虑DOM和MouseWheelapi事件并以通用方式提供它们,以便您的代码可以使用该单个接口,该界面可以用任何方式使用?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top