下面的屏幕截图显示了我的问题。我有一个ItemsControl
,其中项目的DataTemplate
包含CheckBox
和TextBox
,后跟一些文字。当我从TextBox
标签到下一行的CheckBox
时,它会正确接收键盘焦点,但是小视觉焦点矩形位于错误的位置 - 始终位于{的左上角{1}}无论哪个项目都有焦点。什么?我添加了一个触发器,用绿色突出显示ItemsControl
以显示焦点位于正确的位置。按IsKeyboardFocusWithin
取消选中绿色复选框。
更改Spacebar
中的值会导致重新计算另一个窗口中的某些内容。存在轻微延迟(至少在此机器上<1秒)并且如果我关闭对值变化做出反应的窗口,问题就会消失。是否可以在键盘焦点使用的可视树的布局完成更新之前绘制视觉焦点?
我并不十分关心解决这个问题。我想知道为什么这有道理?