ComboBox не повышает события клавиатуры и мыши, как и ожидалось

StackOverflow https://stackoverflow.com/questions/6335405

Вопрос

Я использую 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

Выпадающий кольцо происходит, когда закрывается раскрывающаяся часть комбо-коробки.
Распаданный, когда открывается раскрывающаяся часть комбинированной коробки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top