Domanda

Uso Silverlight 4.0 e ho problemi con il controllo ComboBox. Voglio implementare un menu popup che si mostrerà e si nasconderà senza fare clic sul mouse. Dovrebbe mostrare quando metto il cursore sulla sua regione: questo PRT funziona bene. Quindi dovrebbe nascondersi ogni volta che il puntatore del topo viene posizionato al di fuori della sua regione per un po '. L'ho implementato con eventi Mouseenter e MouseLeave. Il mio problema è combobox - Questo controllo si comporta in modo strano, secondo me. Normalmente mi aspetterei che sollevi l'evento Mouseenter quando mi metto il cursore e Mouseleave quando metto il cursore del mouse altrove. La situazione reale è diversa: ogni volta che faccio clic sul combobox, si apre e mostra l'elenco delle opzioni e invia immediatamente eventi LostFocus e MouseLeave. Quindi sembra che il controllo della tastiera perduto e il puntatore del mouse sia stato spostato fuori dalla sua regione, mentre in realtà l'elenco ComboBox di Optins è aperto e attivo e ha una messa a fuoco della tastiera in esso.

Quindi la domanda è come posso sapere nel mio programma cosa sta accadendo in ComboBox? Per nascondere correttamente il mio menu popup, devo sapere quando l'elenco delle opzioni in un combobox è aperto o chiuso. Non riesco a vedere alcun evento per questo o qualsiasi altra documentazione. (Il comportamento ricercato è: se un combobox è chiuso, nascondo il mio menu di popup in base alla posizione del cursore del mouse. Se un combobox è aperto, non nascondo mai il mio menu popup fino a quando l'utente non seleziona qualcosa nel combobox o chiude il combobox. )

Inoltre, se hai avuto una buona esperienza con una sostituzione ComboBox di terze parti, che sembra e funziona in modo simile e alleva eventi di cui ho bisogno, per favore fatemelo sapere.

È stato utile?

Soluzione

MSDN ha due eventi elencati per ComboBox che potresti voler guardare.

http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox_events(vs.95).aspx

DropDownClosed si verifica quando si chiude la parte a discesa della casella combinata.
Si verifica a discesa quando si apre la parte a discesa della casella combinata.

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