提问人:limeniye 提问时间:7/18/2023 更新时间:7/18/2023 访问量:32
WPF。失去焦点后 TextBox 聚焦
WPF. TextBox focuses after losing focus
问:
步骤
- 订阅 TextBox 焦点事件
_associatedObject.GotKeyboardFocus += OnAssociatedObjectGotKeyboardFocus;
_associatedObject.LostKeyboardFocus += OnAssociatedObjectLostKeyboardFocus;
_associatedObject.GotFocus += (s,e) =>
{
System.Diagnostics.Debug.WriteLine("GotFocus");
};
_associatedObject.LostFocus += (s, e) =>
{
System.Diagnostics.Debug.WriteLine("LostFocus");
};
_associatedObject.IsKeyboardFocusedChanged += (s, e) =>
{
System.Diagnostics.Debug.WriteLine("IsKeyboardFocusedChanged");
};
_associatedObject.IsKeyboardFocusWithinChanged += (s, e) =>
{
System.Diagnostics.Debug.WriteLine("IsKeyboardFocusWithinChanged");
};
- 在 LostKeyboardFocus 之后引发 LostFocusEvent
private void OnAssociatedObjectLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
_associatedObject.RaiseEvent(new RoutedEventArgs(UIElement.LostFocusEvent));
Keyboard.ClearFocus();
System.Diagnostics.Debug.WriteLine("LostKeyboardFocus");
}
- 打开程序并单击 文本框;
- 元素获得焦点后,单击桌面或任何其他应用程序中,从 TextBox 元素中删除焦点;
- 再次将焦点放回您的应用程序。
期望值
聚焦窗口后,不应向调试窗口添加任何内容,因为该元素已为 LostFocus。
结果
IsKeyboardFocusWithinChanged
IsKeyboardFocusedChanged
GotKeyboardFocus
IsKeyboardFocusWithinChanged
IsKeyboardFocusedChanged
LostFocus
LostKeyboardFocus
LostFocus
答: 暂无答案
评论