XamlDirect.AddEventHandler 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
AddEventHandler(IXamlDirectObject, XamlEventIndex, Object) |
使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到当前 IXamlDirectObject 上的处理程序集合中。 |
AddEventHandler(IXamlDirectObject, XamlEventIndex, Object, Boolean) |
使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到当前 IXamlDirectObject 上的处理程序集合中。 将 handledEventsToo 指定为 true,以调用提供的处理程序,即使在其他位置处理事件也是如此。 |
AddEventHandler(IXamlDirectObject, XamlEventIndex, Object)
使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到当前 IXamlDirectObject 上的处理程序集合中。
public:
virtual void AddEventHandler(IXamlDirectObject ^ xamlDirectObject, XamlEventIndex eventIndex, Platform::Object ^ handler) = AddEventHandler;
/// [Windows.Foundation.Metadata.DefaultOverload]
/// [Windows.Foundation.Metadata.Overload("AddEventHandler")]
void AddEventHandler(IXamlDirectObject const& xamlDirectObject, XamlEventIndex const& eventIndex, IInspectable const& handler);
[Windows.Foundation.Metadata.DefaultOverload]
[Windows.Foundation.Metadata.Overload("AddEventHandler")]
public void AddEventHandler(IXamlDirectObject xamlDirectObject, XamlEventIndex eventIndex, object handler);
function addEventHandler(xamlDirectObject, eventIndex, handler)
Public Sub AddEventHandler (xamlDirectObject As IXamlDirectObject, eventIndex As XamlEventIndex, handler As Object)
参数
- xamlDirectObject
- IXamlDirectObject
对当前 IXamlDirectObject 的引用。
- eventIndex
- XamlEventIndex
要通过 XamlEventIndex 枚举指定的事件的标识符。
- handler
-
Object
Platform::Object
IInspectable
对指定处理程序实现的引用。
- 属性
示例
下面的示例演示如何从其 IXamlDirectObject 实例通过 ToggleSwitch 控件上的 PointerEventHandler 的特定实例添加/修改 PointerEntered 事件。
XamlDirect xd = XamlDirect.GetDefault();
IXamlDirectObject toggleSwitch = xd.CreateInstance(XamlTypeIndex.ToggleSwitch);
PointerEventHandler toggleSwitchPointerHandler = new PointerEventHandler((sender, args) =>
{
if (sender is ToggleSwitch)
{
((ToggleSwitch)sender).IsOn = !((ToggleSwitch)sender).IsOn;
}
});
xd.AddEventHandler(toggleSwitch, XamlEventIndex.UIElement_PointerEntered, toggleSwitchPointerHandler);
XamlDirect^ xd = XamlDirect::GetDefault();
IXamlDirectObject^ toggleSwitch = xd->CreateInstance(XamlTypeIndex::ToggleSwitch);
PointerEventHandler^ toggleSwitchPointerHandler = ref new PointerEventHandler([&](Platform::Object^ sender, PointerRoutedEventArgs^ args)
{
ToggleSwitch^ ts = dynamic_cast<ToggleSwitch^>(sender);
if (nullptr != ts)
{
ts->IsOn = !ts->IsOn;
}
});
xd->AddEventHandler(toggleSwitch, XamlEventIndex::UIElement_PointerEntered, toggleSwitchPointerHandler);
注解
AddEventHandler 只能用于为 XamlEventIndex 枚举支持的事件添加事件处理程序。 可以使用此方法向路由以及 xaml 对象支持的非路由事件添加处理程序。
另请参阅
- AddEventHandler(IXamlDirectObject, XamlEventIndex, Object, Boolean)
- RemoveEventHandler(IXamlDirectObject, XamlEventIndex, Object)
适用于
AddEventHandler(IXamlDirectObject, XamlEventIndex, Object, Boolean)
使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到当前 IXamlDirectObject 上的处理程序集合中。 将 handledEventsToo 指定为 true,以调用提供的处理程序,即使在其他位置处理事件也是如此。
public:
virtual void AddEventHandler(IXamlDirectObject ^ xamlDirectObject, XamlEventIndex eventIndex, Platform::Object ^ handler, bool handledEventsToo) = AddEventHandler;
/// [Windows.Foundation.Metadata.Overload("AddEventHandler_HandledEventsToo")]
void AddEventHandler(IXamlDirectObject const& xamlDirectObject, XamlEventIndex const& eventIndex, IInspectable const& handler, bool const& handledEventsToo);
[Windows.Foundation.Metadata.Overload("AddEventHandler_HandledEventsToo")]
public void AddEventHandler(IXamlDirectObject xamlDirectObject, XamlEventIndex eventIndex, object handler, bool handledEventsToo);
function addEventHandler(xamlDirectObject, eventIndex, handler, handledEventsToo)
Public Sub AddEventHandler (xamlDirectObject As IXamlDirectObject, eventIndex As XamlEventIndex, handler As Object, handledEventsToo As Boolean)
参数
- xamlDirectObject
- IXamlDirectObject
对当前 IXamlDirectObject 的引用。
- eventIndex
- XamlEventIndex
要通过 XamlEventIndex 枚举指定的事件的标识符。
- handler
-
Object
Platform::Object
IInspectable
对指定处理程序实现的引用。
- handledEventsToo
-
Boolean
bool
如果为 true ,则注册处理程序,以便即使路由事件在其事件数据中标记为已处理,也会调用该处理程序。 如果为 false ,则向默认条件注册处理程序,即如果路由事件已标记为已处理,则不会调用该处理程序。
默认值为 false,参数是可选的。
- 属性
示例
下面的示例演示如何从其 IXamlDirectObject 实例通过 ToggleSwitch 控件上的 PointerEventHandler 的特定实例添加/修改 PointerEntered 事件。
XamlDirect xd = XamlDirect.GetDefault();
IXamlDirectObject toggleSwitch = xd.CreateInstance(XamlTypeIndex.ToggleSwitch);
PointerEventHandler toggleSwitchPointerHandler = new PointerEventHandler((sender, args) =>
{
if (sender is ToggleSwitch)
{
((ToggleSwitch)sender).IsOn = !((ToggleSwitch)sender).IsOn;
}
});
xd.AddEventHandler(toggleSwitch, XamlEventIndex.UIElement_PointerEntered, toggleSwitchPointerHandler, true);
XamlDirect^ xd = XamlDirect::GetDefault();
IXamlDirectObject^ toggleSwitch = xd->CreateInstance(XamlTypeIndex::ToggleSwitch);
PointerEventHandler^ toggleSwitchPointerHandler = ref new PointerEventHandler([&](Platform::Object^ sender, PointerRoutedEventArgs^ args)
{
ToggleSwitch^ ts = dynamic_cast<ToggleSwitch^>(sender);
if (nullptr != ts)
{
ts->IsOn = !ts->IsOn;
}
});
xd->AddEventHandler(toggleSwitch, XamlEventIndex::UIElement_PointerEntered, toggleSwitchPointerHandler, true);
注解
AddEventHandler 只能用于为 XamlEventIndex 枚举支持的事件添加事件处理程序。 可以使用此方法向路由以及 xaml 对象支持的非路由事件添加处理程序。
请参阅 UIElement.AddHandler ,了解何时使用 handledEventsToo 以及相关限制。 对于非路由事件,将完全忽略 handleEventsToo 标志。
另请参阅
- AddEventHandler(IXamlDirectObject, XamlEventIndex, Object)
- RemoveEventHandler(IXamlDirectObject, XamlEventIndex, Object)
- AddHandler(RoutedEvent, Object, Boolean)
- RemoveHandler(RoutedEvent, Object)