TextBox LostFocus事件发生过于频繁
本文关键字:于频繁 LostFocus 事件 TextBox | 更新日期: 2023-09-27 18:18:31
我在Silverlight和WPF中有一个应用程序。该错误只发生在Silverlight中,但在WPF中使用相同的代码。
在我的应用中,有一个RibbonBar
,有几个RibbonGroups
。每个RibbonGroup
中至少有一个RibbonButton
。其中一个RibbonGroups
还包含四个TextBox
。
每个TextBox
都有自己的OnLostFocus
-Handler。当我离开TextBox
时,相关的处理程序被引发。
现在,(1)我点击其中一个文本框和(2)然后点击一个RibbonButton, OnLostFocus上升,之后出现了RibbonButton下拉菜单。一切都OK。
之后,(3)我点击另一个RibbonButton。OnLostFocus再次引发,尽管——我认为——它不应该。
就这样继续下去。在每个动作之后,文本框保持(或返回,不知道)焦点,这导致OnLostFocus-Handler引发。
在WPF相同的代码不会再次引发OnLostFocus。只有一次,当它真的失去焦点。
有没有人知道,为什么这个行为在Silverlight中那么奇怪?与WPF真正不同的是,也许我只需要设置一个默认值与WPF不同的属性。
尝试使用OnPreviewLostKeyboardFocus。OnLostFocus用于逻辑焦点,您可能会因各种原因丢失逻辑焦点。
我不知道确切的原因,但我怀疑你看到的问题可能是因为功能区栏在FocusScope中。当你将焦点放在焦点范围内的某物上时,你最终得到的结果可能看起来像是焦点在周围反弹。我不确定这个答案,焦点在WPF中非常复杂。提交一些代码示例可能会有所帮助。