2011-03-23 168 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解決了這個問題。

相關問題