Scrollviewer搞乱焦点

时间:2014-09-22 10:46:35

标签: wpf focus scrollviewer

我在另一个窗口的用户控件上有一个窗口(带有屏幕键盘)。

我希望当用户点击键盘窗口外,键盘窗口要关闭。为此,我使用onlostFocus和Deactivated事件,我在其中调用方法HideKeyboardWindow()。

在用户控件中,我有一行1格。当键盘打开并且我单击网格的行时,不会调用HideKeyboardWindow()。但是,当我用ScrollViewer包装行时,则调用HideKeyboardWindow()。

为什么scrollviewer会弄乱焦点?

1 个答案:

答案 0 :(得分:0)

GotFocus事件不适合用于您的目的,因为它可以在不适当的时间引发,例如当用户将鼠标悬停在键盘的内部控件上时。更好的解决方案是简单地将附加的MouseDown处理程序附加到父控件。当父处理程序收到事件时,用户已在键盘控件外部单击。