2011-03-23 137 views
4

我有具有上的GotFocus事件处理程序简单的WPF应用程序主窗口的水平,像这样运行良好的应用程序:为什么FocusManager.GetFocusedElement(this)总是返回null?

private void MainWindowGotFocus(object sender, RoutedEventArgs e) 
    { 
     var element = FocusManager.GetFocusedElement(this) as FrameworkElement; 
     if (element != null) 
     { 
       //... 

然而,当设置为XBAP应用程序(几乎一模一样此行为异常代码 - 主要的可视元素是Page而不是Window,但事件仍然可用并触发)。

在这种情况下(XBAP/wpf浏览器应用程序)元素始终为空。

任何想法? :(

回答

5

非常感谢我的一位同事(Bogdan R.),我们发现FocusManager.IsFocusScope对于Window(WPF)和Page(XBAP)具有不同的默认值,即对后者而言它是错误的。

仅仅是页面元素上设置FocusManager.IsFocusScope解决了这个问题。

相关问题