Silverlight检测是否因为tab被按下或鼠标被点击而失去焦点



是否有一种方法可以在silverlight中检测何时触发失焦事件由于按下TAB键或用户按下另一个控件上的鼠标按钮而发生。

这就是我想要实现的:

我有一个RadGridView与1行。在最后一列中,我有一个数字输入,当当用户退出此控件时,应该向视图模型中的源集合添加新行,这将自动向网格添加新行,然后该行上的第一列应该具有焦点,并且应该打开cellledittemplate中的下拉列表。

当我使用失去焦点事件添加新行工作得很好,虽然这也适用于当我不使用tab取消焦点控件。另外,新行的第一列没有被选中将焦点放在第0行第0列

好的,受Dipak给出的答案的启发,我想出了一个稍微不同的解决方案,我处理Gridviews的keydown和keyup事件,keydown设置bool为true, keyup设置为false。

幸运的是执行顺序是keydown, lostfocus, keyup所以在失焦事件中我只需要检查bool是否为真;奇怪的是,keyup事件并不总是触发,但由于失去焦点这里我也将bool设置为false

是的,你可以跟踪它,只要你在屏幕上的每个可聚焦元素上实现鼠标上下事件。你将有一个标志来检查鼠标预览事件是否发生在任何元素上,如果没有,那么它的TAB键会导致焦点丢失。

最新更新