【发布时间】:2013-08-09 17:09:34
【问题描述】:
GotFocus 和 GotKeyboardFocus 和 LostFocus 和 LostKeyboardFocus 之间有什么区别?
很抱歉这个简单的问题,但是,我用谷歌搜索并阅读了很多博客文章,但我仍然感到困惑。似乎没有人确切知道有什么区别):
更新:
我的用法:
我正在通过扩展Control 类来创建自定义控件。 ComboBox 之类的东西,但还有其他一些效果。我试图通过设置属性来打开和关闭Popup:IsDropDownOpen,就像通过GotFocus 和LostFocus 事件的ComboBox。我不想 Popup 关闭,当我 Alt+Tabed 窗口时,但是当我点击 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 没有。如果我在LostKeyboardFocus 中执行Lost 的操作,那么当我在Alt+Tab 窗口或Window 进入非活动状态时,就会调用该方法,而我并不想要。我该如何解决?
【问题讨论】:
标签: c# wpf c#-4.0 wpf-controls wpf-4.0