[英]TextBox LostFocus event occurs too often
我在Silverlight和WPF中有一个应用程序。 该错误只发生在Silverlight中,但WPF中使用了相同的代码。
在我的应用程序,有一个RibbonBar
,有几个RibbonGroups
。 在每个RibbonGroup
中至少有一个RibbonButton
。 其中一个RibbonGroups
还包含四个TextBox
。
每个TextBox
都有自己的OnLostFocus
-Handler。 当我离开TextBox
,会引发相关的Handler。
现在,(1)我点击其中一个TextBoxes和(2)然后点击RibbonButton,OnLostFocus加注,然后出现RibbonButton下拉菜单。 一切还好。
之后,(3)我点击另一个RibbonButton。 再次OnLostFocus加注,虽然 - imho - 它不应该。
所以它一直在继续。 在每次操作之后,TextBox保持(或者返回,不知道)焦点,这会导致OnLostFocus-Handler引发。
在WPF中,相同的代码不会再次引发OnLostFocus。 只有一次,它真的失去了焦点。
有谁知道,为什么这种行为在Silverlight中很奇怪。 与WPF有什么不同,也许我只需设置一个默认值与WPF不同的属性。
提前致谢。
尝试使用OnPreviewLostKeyboardFocus。 OnLostFocus用于逻辑焦点,您可能会因各种原因而丢失。
我不知道确定的原因,但我怀疑你看到的问题可能是因为功能区栏位于FocusScope中。 当你将焦点放在焦点范围内的某些东西上时,你最终得到的东西看起来就像聚焦在一些物体周围。 我不确定这个答案,WPF中的焦点非常复杂。 提交一些代码示例可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.