Jaka jest różnica (y) między GotFocus
a GotKeyboardFocus
- i podobnie LostFocus
i LostKeyboardFocus
?Różnica między GotFocus i GotKeyboardFocus
Przepraszam za proste pytanie, ale googlełem i czytałem wiele postów na blogu, ale wciąż jestem zdezorientowany. Wydaje się, nikt nie wie dokładnie, co jest różnica):
UPDATE:
Moja Wykorzystanie:
Tworzę kontrolę niestandardowe rozszerzenie Control
klasę. Coś jak ComboBox
, ale z kilkoma innymi efektami. Próbuję otworzyć i zamknąć Popup
, ustawiając właściwość: IsDropDownOpen
podobnie jak zdarzenia ComboBox
przez GotFocus
i LostFocus
. Nie chcę, aby Popup
się zamknęło, kiedy I Alt+Tab
wydało okna, ale zamknęło się, gdy kliknę na przykład Button
lub przejdę do TextBox
. Zrobiłem:
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;
}
W GotFocus
prace. Ale nie udało się. Jeśli robię rzeczy Lost
w LostKeyboardFocus
, wtedy gdy I Alt+Tab
okien lub Window
przechodzi w stan nieaktywny, to metoda zostanie wywołana, a ja nie chcę. Jak mogę to rozwiązać?
+1 dzięki, dobre wyjaśnienie. faktycznie lepsze niż MSDN ". Wielkie dzięki. Czekam na więcej odpowiedzi przez jakiś czas, a potem - jeśli nie ma lepszego - akceptuje twoje. –
Otóż próbuję otworzyć 'Popup' (w kontrolce niestandardowej odziedziczonej po klasie' Control'), ustawiając właściwość 'IsDropDownOpen'.Ustawiłem ją na 'true' w' GotFocus', to działa. Chcę ustawić go na "false", w zdarzeniu "LostFocus". Ale to nie działa. Nie chcę tego robić w 'LostKeyboardFocus', ale w' LostFocus'. Masz pomysł? –
Myślę, że będziesz potrzebować stworzyć nowe pytanie z przykładami kodu. Nie mogę debugować twojego scenariusza z tego krótkiego opisu. –