В чем разница между GotFocus
и GotKeyboardFocus
и аналогично LostFocus
и LostKeyboardFocus
?
Извините за простой вопрос, но я просмотрел его и прочитал много сообщений в блогах, но я все еще смущен. Кажется, никто точно не знает, в чем разница):
UPDATE:
Мое использование:
Я создаю настраиваемый элемент управления, расширяя класс Control
. Что-то вроде ComboBox
, но с некоторыми другими эффектами. Я пытаюсь открыть и закрыть Popup
, установив свойство: IsDropDownOpen
точно так же, как ComboBox
через события GotFocus
и LostFocus
. Я не хочу, чтобы Popup
закрывался, когда я Alt+Tab
редактировал окна, но закрывался, когда я нажимаю на Button
, например, или я перехожу к TextBox
. Я сделал:
private static void OnGotFocusHandler(object sender, RoutedEventArgs e) {
if (e.Handled)
return;
((SearchBox)sender).IsDropDownOpen = true;
e.Handled = true;
}
private static void OnLostFocusHandler(object sender, RoutedEventArgs e) {
if (e.Handled)
return;
((SearchBox)sender).IsDropDownOpen = false;
e.Handled = true;
}
Работает GotFocus
. Но Lost
никто этого не делал. Если я делаю Lost
материал в LostKeyboardFocus
, тогда, когда я Alt+Tab
окна или Window
переходит в неактивный, тогда метод вызывается, а я не хочу. Как я могу это решить?