关于WPF调试焦点问题的任何提示?

Can*_*ith 11 .net debugging wpf focus

具体来说,我有一个打开非模态子窗口的按钮.主窗口中的某些东西会在打开时将焦点从子窗口中移开.

完全通用的方法是注释掉部分代码,直到问题消失.我正在寻找更快的方法.

sto*_*one 26

我正在使用Snoop来做到这一点.

对于初学者,Snoop在状态栏中显示当前聚焦元素和当前FocusScope.

你可以让它向你展示所有GotFocus和LostFocus事件:

  1. 运行你的应用程序
  2. 运行Snoop.
  3. 在下拉列表中选择您的应用.
  4. 单击双筒望远镜("Snoop")按钮.
  5. 在右窗格中,单击"事件"选项卡.
  6. 单击以关闭下拉列表.
  7. 向下滚动到"键盘"部分,然后选中GotKeyboardFocus,LostKeyboardFocus和可选的PreviewXXX事件.
  8. 现在做你需要做的事情来操纵焦点并观看Snoop窗口.

同样,您可以以相同的方式跟踪FocusManager事件.


akj*_*shi 0

我自己没有尝试过,所以无法说出确切的步骤,但您可以尝试使用FocusManager.FocusedElementFocusManager.GetFocusedElement 方法来尝试找到从子窗口窃取焦点的元素。

其他有用的链接 -

焦点概述(有用于获取焦点元素的代码): http://msdn.microsoft.com/en-us/library/aa969768.aspx#Focus_Events