2010-04-20 3 views
11

Ich habe eine Silverlight 4-Anwendung, die von der systemeigenen Mausradunterstützung für eine Reihe von Steuerelementen profitiert. Die Seite, die die Anwendung hostet, verfügt über ein HTML-gesteuertes Dropdown-Menü, das normalerweise das Silverlight-Steuerelement überlagert.Silverlight 4, Mausrad-Ereignisse und fensterloser Modus

In IE muss ich den fensterlosen Modus aktivieren, damit das Overlay-Menü ordnungsgemäß funktioniert (Firefox 3.6 funktioniert normalerweise ohne es). Aktivieren Sie jedoch den fensterlosen Modus prevents Firefox from supporting mouse wheel events ohne zusätzliche Codierung um die HTML-DOM-Brücke.

Gibt es eine Möglichkeit, ich kann sagen, welche Browser fensterlose erfordern und welche ohne es funktioniert? Idealerweise möchte ich die HttpBrowserCapabilities-Informationen verwenden, um zu entscheiden, ob die Eigenschaft auf true festgelegt werden soll oder nicht, anstatt eine Liste von "unterstützten" Browsern zu codieren.

+0

Haben Sie das jemals herausgefunden? Ich habe das gleiche Problem. –

+0

Leider nein. Am Ende habe ich eine Logik im Backend implementiert, um dies auf Basis des Browsers zu tun. Möchte immer noch herausfinden, ob es einen "richtigen" Weg gibt. –

Antwort

2

Silverlight 4 Unterstützung für Mausradereignisse hat, aber es gibt eine Reihe von Regeln bewusst zu sein:

  1. IE ist nie ein Problem
  2. Mausradunterstützung Ereignisse nie aus dem Browser auf O X arbeiten, und nur über den HTML DOM In-Browser.
  3. Windowsless in allen anderen Browsern ist ein No-Go, da sie auf NPAPI angewiesen sind, um Ereignisse zu behandeln.
  4. Sie können das Mausrad mit den Interoperabilitätsfunktionen des Browsers aufrufen, um das Mausrad vom DOM zu erreichen, wie Sie es notiert haben.
  5. HTML-DOM wird nie funktionieren, wenn Vollbild

Für einen vollständigen Zusammenbruch http://msdn.microsoft.com/en-us/library/dd759034(v=vs.95).aspx sehen.

0

Vielleicht könnten Sie Ihre eigene MouseWehenManager-Singleton-Klasse verwenden, die intern sowohl DOM- als auch MouseWheelAPI-Ereignisse berücksichtigt und auf eine allgemeine Weise bereitstellt, sodass Ihr Code diese einzige Schnittstelle verwenden kann, die in beide Richtungen funktioniert?