Frage

Ich benutze Silverlight 4.0 und habe Probleme mit der Combobox -Kontrolle. Ich möchte ein Popup -Menü implementieren, das sich selbst anzeigt und versteckt, ohne auf Maus zu klicken. Es sollte zeigen, wenn ich Cursor in seine Region platziere - diese PRT funktioniert gut. Dann sollte es sich verstecken, wenn der Mauszeiger für eine Weile außerhalb seiner Region platziert wird. Ich habe es mit Mausenter- und Mouseleave -Ereignissen implementiert. Mein Problem ist Combobox - Diese Kontrolle verhält meiner Meinung nach seltsam. Normalerweise würde ich erwarten, dass es das Mouseenter -Ereignis erhöht, wenn ich den Cursor darauf und Mouseleave einsetze, wenn ich den Maus -Cursor irgendwohin platziere. Die reale Situation ist anders: Wenn ich auf den Combobox klicke, öffnet und zeigt sie die Liste der Optionen und sendet sofort Ereignisse für LostFocus und Mouselave. Es scheint also, dass der Kontroll -Fokus und der Mauszeiger aus seiner Region verloren gehen, während tatsächlich die Combobox -Liste der Optins offen und aktiv ist und Tastaturfokus darin hat.

Die Frage ist also, wie kann ich in meinem Programm wissen, was in Comboboxen passiert. Um mein Popup -Menü richtig zu verbergen, muss ich wissen, wann die Liste der Optionen in einem Combobox geöffnet oder geschlossen ist. Ich kann keine Ereignisse für diese oder eine andere Dokumentation sehen. (GELAND -Verhalten lautet: Wenn ein Combobox geschlossen ist, verstecke ich mein Popup -Menü basierend auf der Position des Maus -Cursors. Wenn ein Combobox geöffnet ist, verstecke ich mein Popup -Menü nie, bis der Benutzer entweder etwas im Combobox ausgewählt oder den Combobox schließt. ))

Wenn Sie eine gute Erfahrung mit einem Combobox -Ersatz von Drittanbietern haben, der ähnlich aussieht und funktioniert und Ereignisse, die ich benötige,, lassen Sie es mich bitte wissen.

War es hilfreich?

Lösung

MSDN hat zwei Ereignisse für Combobox, die Sie sich vielleicht ansehen möchten.

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

Dropdowncloded tritt auf, wenn der Dropdown-Teil der Kombinationsbox schließt.
Dropdownopeed tritt auf, wenn sich der Dropdown-Teil der Kombinationsbox öffnet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top