2010-04-20 49 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事件並以通用的方式提供它們,所以你的代碼可以使用這個單一的接口,它可以工作嗎?