XamlDirect.AddEventHandler 方法

定义

重载

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)

使用 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 标志。

另请参阅

适用于