任何人都有一个很好的方法来调试WPF焦点?

时间:2009-05-05 18:22:25

标签: wpf debugging focus

我现在要在我的WPF应用程序中集中注意力。焦点在元素之间跳跃,并且当重复按Tab键时,看起来只是消失在另一个元素上。

是否有一个属性我可以绑定一个标签或什么东西,只是告诉我当时键盘焦点锁定到什么位置?有时候我可以看到蚂蚁踪迹(虚线)表示某些东西有焦点,但是我无法分辨它是什么让键盘焦点关闭!

4 个答案:

答案 0 :(得分:2)

您可能正在寻找的是:

(System.Windows.Input.Keyboard.FocusedElement as FrameworkElement).Name

您必须为它设置DependencyProperty,以便您可以绑定它。

Vaccano

答案 1 :(得分:0)

焦点问题可能很难分析,因为几乎所有使用调试器的操作都会影响焦点。

  • Visual Studio附带的 spy ++ 副本将向您显示各种事件 控制;这可能会有所帮助。
  • 您可以将焦点和失去焦点的事件记录到另一个地方(如另一个窗口中的列表控件)。或者甚至将当前窗口标题设置为具有焦点的当前对象的名称。然后你就可以看到目前关注的是什么。

一个更好的问题是为什么焦点会跳来跳去?你明确地设定焦点吗?也许对你的实现有一些暗示(即你正在使用哪个容器)可以帮助我们回答。

答案 2 :(得分:0)

也许您可以尝试为控件的TabIndex属性设置正确的值?当按Tab键时,这应该使焦点“跳过”你希望它跳过的“路径”。

答案 3 :(得分:0)

我强烈建议您阅读这篇文章。它附带了一些可以帮助调试焦点问题的源代码,我经常最终使用这些代码来帮助解决我自己的焦点问题。

http://julmar.com/blog/programming/part-1-its-basically-focus/