Domanda

Ho un'applicazione Silverlight 4 che i benefici notevolmente da avere il supporto rotellina del mouse nativo per una serie di controlli. La pagina che ospita l'applicazione ha un HTML guidato menu a discesa che normalmente sovrapporre il controllo Silverlight.

In IE, devo attivare la modalità senza finestre per consentire il menu di sovrapposizione per funzionare correttamente (Firefox 3.6 funziona normalmente senza di esso). Tuttavia, consentendo modalità senza finestra impedisce Firefox dal sostenere rotellina eventi senza ulteriore codifica intorno al ponte HTML DOM.

C'è un modo posso dire che i browser richiederà senza finestre, e che funzionerà senza di essa? Idealmente, vorrei utilizzare le informazioni HttpBrowserCapabilities per decidere se impostare o meno la proprietà su true, piuttosto che hardcoding un elenco dei browser supportati ''.

È stato utile?

Soluzione

Silverlight 4 ha il supporto per gli eventi rotellina del mouse, ma ci sono una serie di regole per essere a conoscenza di:

  1. IE è mai un problema
  2. eventi rotellina del mouse non funzionerà mai su OS X fuori del browser, e solo tramite il DOM HTML nel browser.
  3. Windowsless in tutti gli altri browser è un no-go perché si basano su NPAPI per eventi manico .
  4. È possibile ottenere la rotellina del mouse con l'interoperabilità del browser caratteristiche per arrivare alla rotella del mouse dal DOM come avrete notato.
  5. HTML DOM non funzionerà mai quando schermo intero

Per una ripartizione completa vedere http: // msdn.microsoft.com/en-us/library/dd759034(v=vs.95).aspx .

Altri suggerimenti

Forse si potrebbe utilizzare il proprio MouseWehhenManager Singleton classe che considera internamente eventi sia DOM e MouseWheelAPI e li fornisce in un modo comune, in modo che il codice può usare questa singola interfaccia che funziona in entrambi i casi?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top