2009-05-05 17 views
5

我现在要在我的WPF应用程序中关注地狱。焦点在元素之间跳跃,并且看起来消失时只是在重复按下Tab键时出现在另一个元素上。任何人都有一个很好的方式来调试WPF焦点?

是否有一个属性,我可以绑定一个标签或什么,只是告诉我,当时键盘焦点锁定到什么地方?有时候我可以看到蚂蚁踪迹(虚线),表明某物有焦点,但我无法分辨它周围的情况以关闭键盘焦点!

回答

0

焦点问题可能很难分析,因为几乎你用调试器做的每件事都会影响焦点。

  • 间谍++的副本与Visual Studio会告诉你去各种 控制事件;这可能有帮助。
  • 您可以将焦点和失去焦点的事件记录到另一个地方(如另一个窗口中的列表控件)。甚至可以将当前窗口标题设置为当前焦点对象的名称。然后你可以看到目前的焦点。

要问的一个更好的问题是为什么焦点跳跃?你是否明确设定了重点?也许关于你的实现(即你正在使用哪个容器)的一点提示可能会帮助我们回答。

+0

这是来自WPF Toolkit CTP的WPF数据网格。出于某种原因,当我从DataGrid绑定的集合中删除一个项目时,焦点从网格内跳转到网格外的某个内容。蚂蚁足迹出现在整个电网周围。 – Jippers 2009-05-05 22:42:15

1

什么你很可能寻找的是:

(System.Windows.Input.Keyboard.FocusedElement为FrameworkElement的),请将.Name

你将不得不建立一个DependencyProperty它让你可以绑定到它虽然。

Vaccano

+0

我该怎么做?我试图从MSDN在这里的例子,但没有太多的运气。 http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject.aspx – Jippers 2009-05-05 22:50:35

0

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

0

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

http://julmar.com/blog/mark/?p=52

+0

链接已过时。现在我对内容完全好奇。 – BenL 2016-10-28 19:39:09

相关问题