WPF开发过程中经常会有控件无法触发LostFocus的事件的问题,或者使用e.handled = true,导致路由事件卡住无法跳过的问题。这里有个小妙招:可以模拟键盘按键Key【Tab】。
代码里增加user32的方法。然后在需要失焦的地方
keybd_event(System.Windows.Forms.Keys.Enter, 0, 0, 0);
就可以了
[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(System.Windows.Forms.Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);