我有一个应用程序,它作为一个简单的WPF应用程序运行良好,在主窗口级别的GotFocus上有一个事件处理程序,如下所示:
private void MainWindowGotFocus(object sender, RoutedEventArgs e)
{
var element = FocusManager.GetFocusedElement(this) as FrameworkElement;
if (element != null)
{
//...然而,当设置为XBAP应用程序时,这会表现得很奇怪(几乎完全相同的代码-主要的可视元素是Page而不是Window,但事件仍然可用并被触发)。
在这种情况下(XBAP/wpf浏览器应用程序)元素始终为空。
有什么想法吗?
发布于 2011-03-23 23:27:47
感谢我的一位同事(Bogdan R.)我们发现FocusManager.IsFocusScope对于窗口(WPF)和页面(XBAP)有不同的默认值,即后者是假的。
只需在页面元素上设置FocusManager.IsFocusScope就可以解决这个问题。
发布于 2013-08-04 09:23:26
也可以尝试使用Keyboard.FocusedElement
https://stackoverflow.com/questions/5407327
复制相似问题