В чем разница между 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 переходит в неактивный, тогда метод вызывается, а я не хочу. Как я могу это решить?