我有一个应用程序运行良好作为一个简单的WPF应用程序在主窗口级别上具有GotFocus上的事件处理程序,如下所示:
private void MainWindowGotFocus(object sender, RoutedEventArgs e)
{
var element = FocusManager.GetFocusedElement(this) as FrameworkElement;
if (element != null)
{
//...
Run Code Online (Sandbox Code Playgroud)
然而,当设置为XBAP应用程序时,这种行为很奇怪(几乎完全相同的代码 - 主要的可视元素是Page而不是Window,但事件仍然可用并被触发).
在这种情况下(XBAP/wpf浏览器应用程序)元素始终为null.
有任何想法吗?:(
感谢我的同事(Bogdan R.),我们发现FocusManager.IsFocusScope对Window(WPF)和Page(XBAP)有不同的默认值,即后者是假的.
只需在Page元素上设置FocusManager.IsFocusScope即可解决问题.
| 归档时间: |
|
| 查看次数: |
4021 次 |
| 最近记录: |