IXamlDirect.AddEventHandler 方法

定义

重载

AddEventHandler(Object, XamlEventIndex, Object)

使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到指定对象的处理程序集合。

本文档适用于 Windows 应用 SDKWinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。

AddEventHandler(Object, XamlEventIndex, Object, Boolean)

使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到当前 IXamlDirect 上的处理程序集合。 将 handledEventsToo 指定为 true,以便即使在其他位置处理事件,也调用提供的处理程序。

本文档适用于 Windows 应用 SDKWinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。

AddEventHandler(Object, XamlEventIndex, Object)

使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到指定对象的处理程序集合。

本文档适用于 Windows 应用 SDKWinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。

public:
 void AddEventHandler(Platform::Object ^ xamlDirectObject, XamlEventIndex eventIndex, Platform::Object ^ handler);
/// [Windows.Foundation.Metadata.Overload("AddEventHandler2")]
void AddEventHandler(IInspectable const& xamlDirectObject, XamlEventIndex const& eventIndex, IInspectable const& handler);
[Windows.Foundation.Metadata.Overload("AddEventHandler2")]
public void AddEventHandler(object xamlDirectObject, XamlEventIndex eventIndex, object handler);
Public Sub AddEventHandler (xamlDirectObject As Object, eventIndex As XamlEventIndex, handler As Object)

参数

xamlDirectObject
Object

Platform::Object

IInspectable

对接收事件处理程序的对象的引用。

eventIndex
XamlEventIndex

要通过 XamlEventIndex 枚举指定的事件的标识符。

handler
Object

Platform::Object

IInspectable

对指定处理程序实现的引用。

属性

示例

以下示例演示如何通过 ToggleSwitch 控件上的 PointerEventHandler 的特定实例从其 IXamlDirect 实例添加/修改 PointerEntered 事件。

XamlDirect xd = XamlDirect.GetDefault();

IXamlDirect 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();

IXamlDirect^ 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(Object, XamlEventIndex, Object, Boolean)

使用 XamlEventIndex 为指定事件添加指定的事件处理程序,并将处理程序添加到当前 IXamlDirect 上的处理程序集合。 将 handledEventsToo 指定为 true,以便即使在其他位置处理事件,也调用提供的处理程序。

本文档适用于 Windows 应用 SDKWinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。

public:
 void AddEventHandler(Platform::Object ^ xamlDirectObject, XamlEventIndex eventIndex, Platform::Object ^ handler, bool handledEventsToo);
/// [Windows.Foundation.Metadata.Overload("AddEventHandler1")]
void AddEventHandler(IInspectable const& xamlDirectObject, XamlEventIndex const& eventIndex, IInspectable const& handler, bool const& handledEventsToo);
[Windows.Foundation.Metadata.Overload("AddEventHandler1")]
public void AddEventHandler(object xamlDirectObject, XamlEventIndex eventIndex, object handler, bool handledEventsToo);
Public Sub AddEventHandler (xamlDirectObject As Object, eventIndex As XamlEventIndex, handler As Object, handledEventsToo As Boolean)

参数

xamlDirectObject
Object

Platform::Object

IInspectable

对当前 IXamlDirect 的引用。

eventIndex
XamlEventIndex

要通过 XamlEventIndex 枚举指定的事件的标识符。

handler
Object

Platform::Object

IInspectable

对指定处理程序实现的引用。

handledEventsToo
Boolean

bool

如果 注册处理程序,即使路由事件在其事件数据中标记为已处理,也会调用该处理程序。

如果 路由事件已标记为已处理,则为 false,以注册处理程序的默认条件,则不会调用该处理程序。

默认值为 false,参数是可选的。

属性

示例

XamlDirect xd = XamlDirect.GetDefault();

IXamlDirect 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();

IXamlDirect^ 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 对象支持的非路由事件添加处理程序。

有关何时使用 handledEventsToo 和相同限制,请参阅 UIElement.AddHandler。 对于非路由事件,将完全忽略 handleEventsToo 标志。

另请参阅

适用于