WPF usercontrol不允许lostfocus在单独控制上进行更改

时间:2011-08-13 07:08:53

标签: c# wpf lost-focus

这个解释有点棘手。

我有一些带有一些文本框的用户控件。我在同一个窗口中的这个用户控件上方也有一个菜单。每当我标签离开时,LostFocus在文本框上正确激发,这就是我想要的。奇怪的是,如果我单击窗口顶部的“菜单”按钮,LostFocus事件就不会在文本框中触发。是否有一种优雅的方式来确保我的菜单正确允许LostFocus在最后有焦点的任何控件上触发?

我还想避免更新BindingExpressions,否则我可能会为N个文本框执行此操作,这是不可取的。

我无法想象实现这一点太难了。我只是不明白这是怎么回事:在大多数其他情况下,LostFocus总是会触发。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

是WPF菜单还是Winforms / UnManaged?如果两者中的任何一个失去焦点事件都不会触发。这可能会对WPF控件造成严重破坏,因为从菜单执行保存或其他数据功能的次数很多。为了解决这个问题,我必须采用多种方法来解决这个问题。最简单的方法是在用户控件本身上实现鼠标离开事件,并在代码中手动执行所需的任何操作。