此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
MSDN Library
信息
您所需的主题如下所示。但此主题未包含在此库中。

UIElement.LostFocus 事件

2013/12/13

UIElement 失去焦点时发生。

Namespace:  System.Windows
程序集:  System.Windows(位于 System.Windows.dll 中)
XMLNS for XAML: 未映射到 xmlns。

public event RoutedEventHandler LostFocus
<uiElement LostFocus="eventhandler"/>

LostFocus 事件是一种冒泡事件。这意味着,如果为由对象树中的父-子关系所连接的一系列对象注册了多个 LostFocus 事件处理程序,则该事件将由该关系中的每个对象接收。冒泡比喻表示事件在直接接收输入条件的对象上启动,然后沿对象树向上传递。对于冒泡事件,可用于事件处理程序的 sender 标识处理该事件时所用的对象,而不必标识实际接收发起该事件的输入条件的对象。若要获取发起该事件的对象,请使用该事件的 RoutedEventArgs 事件数据的 OriginalSource 值。

处理 GotFocusLostFocus 事件时,在事件数据类中没有可用的 Handled 属性,事件将通过对象树继续向上路由并调用所有附加的处理程序。如果您想处理对象树中各个级别上的焦点,这有时可能对于您应用程序的焦点事件处理策略并不合适。您可能考虑使用下列方法之一:

  • 使用布尔型标志来记录聚焦状态。从特定的处理程序调用将您自己的“Handled”变量设置为 true,您的设计认为该调用已正确处理事件。在后续处理程序中查看此“Handled”变量,检查其他处理程序是否也处理了事件,如果处理了,则不执行任何操作。在对象树的根部,至少出于将“Handled”重新设置为 false 以清除下一个焦点事件的状态的目的来处理该焦点事件。

  • 特别强调查看或使用由事件数据中的 senderOriginalSource 传输到处理程序的对象值。只有满足以下条件时才能选择进行处理:sender 等于 OriginalSource,或 sender 是特殊的命名对象(此时将同一焦点事件处理程序附加到多个对象或类似的逻辑运算)。

由于 Windows Phone 焦点系统的设计,异步引发 GotFocus 是为了应对实际焦点变动。若要获取同步焦点值,请使用 FocusManager

LostFocus 和 OnLostFocus

继承 LostFocus 的控件可以通过重写 OnLostFocus 方法来处理充当所有实例的处理程序的事件。因为是直接处理事件,没有可用的 Handled 属性,因此不能这样实现 OnLostFocus 以使它通过 Handled 方法取消事件的进一步处理。但是,OnLostFocus 对于设置可视状态或公共或内部状态属性可能很有用。有关更多信息,请参见 OnLostFocus

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2015 Microsoft