Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF:这种行为是故意的吗?PreviewLostKeyboardFocus和LostKeyboardFocus_C#_Wpf_Focus - Fatal编程技术网

C# WPF:这种行为是故意的吗?PreviewLostKeyboardFocus和LostKeyboardFocus

C# WPF:这种行为是故意的吗?PreviewLostKeyboardFocus和LostKeyboardFocus,c#,wpf,focus,C#,Wpf,Focus,我有一个文本框,我想在用户离开文本框时保存内容。我计划使用PreviewLostKeyboardFocus,但它没有按预期工作 <TextBox PreviewLostKeyboardFocus="textBox2_PreviewLostKeyboardFocus" LostKeyboardFocus="textBox2_LostKeyboardFocus" /> 当我单击同一应用程序中的另一个控件时,我首先得到PreviewLostKeyboardFocu

我有一个文本框,我想在用户离开文本框时保存内容。我计划使用PreviewLostKeyboardFocus,但它没有按预期工作

<TextBox PreviewLostKeyboardFocus="textBox2_PreviewLostKeyboardFocus" 
         LostKeyboardFocus="textBox2_LostKeyboardFocus" />


当我单击同一应用程序中的另一个控件时,我首先得到PreviewLostKeyboardFocus事件,然后是LostKeyboardFocus事件。但当我激活另一个应用程序时,PreviewLostKeyboardFocus事件根本不会发生。我只会失去键盘焦点

这是预期的行为

切换到其他应用程序时,不会引发
PreviewLostKeyboardFocus
事件

首先处理事件的主要目的是防止键盘焦点发生变化:


如果在切换到其他应用程序时引发该事件,您可以通过处理此事件来防止键盘焦点发生变化,并将
KeyboardFocusChangedEventArgs
Handled
属性设置为
true
,这将有效防止用户在运行应用程序时聚焦屏幕上的任何其他元素。

预期的行为

切换到其他应用程序时,不会引发
PreviewLostKeyboardFocus
事件

首先处理事件的主要目的是防止键盘焦点发生变化:


如果在切换到其他应用程序时引发该事件,您可以通过处理此事件来防止键盘焦点发生变化,并将
KeyboardFocusChangedEventArgs
Handled
属性设置为
true
,这将有效地防止用户在运行应用程序时聚焦屏幕上的任何其他元素。

可以吗告诉我,在文档中的什么地方说明切换到另一个应用程序时不会引发?--但是,在另一个应用程序获得焦点之前,是否有任何机制或事件可以用来确定我是否失去了焦点。这是因为我想将文本框的内容保存到一个文件中,以便其他文本编辑器可以检测到更改。例如,记事本++仅在收到焦点时检查更新的文件,然后我的保存时间就晚了。请不要在评论中询问其他问题。如果你有其他问题,请问另一个问题。但是如何处理LostKeyboardFocus事件呢?或者,您可以处理窗口或应用程序的停用事件:。请记住投票选出有用的答案:)您能告诉我,文档中的什么地方说明切换到另一个应用程序时不会引发此问题吗?--但是,在另一个应用程序获得焦点之前,是否有任何机制或事件可以用来确定我是否失去了焦点。这是因为我想将文本框的内容保存到一个文件中,以便其他文本编辑器可以检测到更改。例如,记事本++仅在收到焦点时检查更新的文件,然后我的保存时间就晚了。请不要在评论中询问其他问题。如果你有其他问题,请问另一个问题。但是如何处理LostKeyboardFocus事件呢?或者,您可以处理窗口或应用程序的停用事件:。请记住投票支持有用的答案:)