我有一个TextBox,我想在用户离开TextBox时保存内容。我打算使用PreviewLostKeyboardFocus,但它并没有按预期工作。
<TextBox PreviewLostKeyboardFocus="textBox2_PreviewLostKeyboardFocus"
LostKeyboardFocus="textBox2_LostKeyboardFocus" />
当我单击同一应用程序内的另一个控件时,我首先获取PreviewLostKeyboardFocus事件,然后获取LostKeyboardFocus事件。但是当我激活另一个应用程序时,PreviewLostKeyboardFocus事件根本不会发生。我只得到LostKeyboardFocus。
答案 0 :(得分:0)
这是预期的行为。
切换到其他应用程序时,不会引发PreviewLostKeyboardFocus
事件。
首先处理事件的主要目的是防止键盘焦点发生变化:https://msdn.microsoft.com/en-us/library/system.windows.input.keyboard.previewlostkeyboardfocus(v=vs.110).aspx
如果在切换到另一个应用程序时引发了该事件,则可以通过处理此事件来防止键盘焦点发生更改,并将Handled
的{{1}}属性设置为{ {1}}这将有效地防止用户在运行应用程序时将任何其他元素聚焦在屏幕上。