2011-02-01 3 views
1

Я создал Google как элемент управления SearchBox в Silverlight. Это означает, что, когда я ввожу в поле, DropDownListBox появляется чуть ниже SearchBox, показывая все элементы, которые соответствуют тексту, который я набирал в поисковой строке до сих пор (например, функция автозаполнения), точно так:Google, как SearchBox в Silverlight

Google like SearchBox in Silverlight

Теперь я хочу добавить к нему функциональность: я хочу, чтобы DropDownListBox исчез, как только пользователь нажимает на него или в любом месте экрана. Я не могу обрабатывать MouseLeftButtonDown (или любой такой event) в других элементах управления, чтобы выполнить это, потому что пользователи могут щелкнуть в любом месте, включая область, отличную от серебристого. Может ли кто-нибудь предложить мне, что я должен сделать, чтобы достичь этого?

Так что мой вопрос в принципе:

Как знать, если пользователь просто щелкнул и событие щелчка произошло за пределами конкретного элемента управления?

Обратите внимание, что AutoCompleteBox не служит моей цели. Поэтому я не могу его использовать.

+0

Что такое Silverlight Toolkit Autocomplete TextBox? –

+0

@Shoaib: Кажется, вы не читали мое сообщение до конца. :-) – Nawaz

+0

извините, я не заметил. Я думаю, что lostFocus может помочь, как указал Раф. –

ответ

3

У меня такое ощущение, что работа с LostFocus может решить вашу проблему.

1

Я думаю, этот вопрос немного устарел, но я просто натыкаюсь на попытку сделать то же самое и найти решение. Это то, что я сделал

  • Создал границу со всеми полями -500, это покроет весь экран в основном.
  • Поведение кликов этой границы, раскрывающийся раздел SearchBox рухнул.
  • Отрегулируйте z-указатель границы непосредственно ниже раздела SearchBox и DropDown , поэтому нажатие на SearchBox или DropDown не закроет его.
  • Установить видимость границы Свернуто и сделать его видимым, когда DropDown является видимым.

Я надеюсь, что это поможет кому-то, кто ищет подобную проблему.

Смежные вопросы