ComboBox не повышает события клавиатуры и мыши, как и ожидалось
-
27-10-2019 - |
Вопрос
Я использую Silverlight 4.0 и у меня есть проблемы с ComboBox Control. Я хочу реализовать всплывающее меню, которое покажет и скрывается, не нажимая мышь. Он должен показать, когда я размещаю курсор в его регион - этот PRT работает хорошо. Затем он должен прятаться, когда указатель мыши на некоторое время помещается за пределы региона. Я внедрил его с событиями мышиного и мыши. Моя проблема - ComboBox - По моему мнению, этот контроль ведет себя странно. Обычно я ожидаю, что он будет поднять событие мыши, когда я наложу курсор на него и MouseLeave, когда я ставлю курсор мыши где -нибудь еще. Реальная ситуация отличается: всякий раз, когда я щелкаю ComboBox, она открывается и показывает список вариантов и сразу же отправляет события LostFocus и MouseLeave. Таким образом, кажется, что управление утерянным фокусом на клавиатуре и указатель мыши были перемещены из ее региона, в то время как на самом деле состав Combobox Optins открыт и активен и имеет в ней фокусировку клавиатуры.
Итак, вопрос в том, как я могу узнать в своей программе, что происходит в Comboboxes? Чтобы правильно скрыть мое всплывающее меню, мне нужно знать, когда список вариантов в ComboBox открыт или закрыт. Я не вижу никаких событий для этой или любой другой документации. (Разыскивается поведение: если ComboBox закрыт, я скрываю свое всплывающее меню, основанное на положении курсора мыши. Если ComboBox открыт, я никогда не скрываю свое всплывающее меню, пока пользователь также не выберет что -то в ComboBox, либо не закрывает CompoBox. )
Кроме того, если у вас есть хороший опыт со сторонней заменой Combobox, которая выглядит и работает так же и вызывает события, которые мне нужны, пожалуйста, дайте мне знать.
Решение
MSDN имеет два события, перечисленные для ComboBox, на которые вы, возможно, захотите посмотреть.
http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox_events(v=vs.95).aspx
Выпадающий кольцо происходит, когда закрывается раскрывающаяся часть комбо-коробки.
Распаданный, когда открывается раскрывающаяся часть комбинированной коробки.