XamlDirect.RemoveEventHandler 方法

定义

从此 IXamlDirectObject 中删除指定的事件处理程序。 通常,有问题的处理程序是由 XamlDirect.AddEventHandler 添加的。

public:
 virtual void RemoveEventHandler(IXamlDirectObject ^ xamlDirectObject, XamlEventIndex eventIndex, Platform::Object ^ handler) = RemoveEventHandler;
void RemoveEventHandler(IXamlDirectObject const& xamlDirectObject, XamlEventIndex const& eventIndex, IInspectable const& handler);
public void RemoveEventHandler(IXamlDirectObject xamlDirectObject, XamlEventIndex eventIndex, object handler);
function removeEventHandler(xamlDirectObject, eventIndex, handler)
Public Sub RemoveEventHandler (xamlDirectObject As IXamlDirectObject, eventIndex As XamlEventIndex, handler As Object)

参数

xamlDirectObject
IXamlDirectObject

对当前 IXamlDirectObject 的引用。

eventIndex
XamlEventIndex

事件标识符,用于删除通过 XamlEventIndex 枚举指定的句柄。

handler
Object

Platform::Object

IInspectable

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

示例

以下示例演示如何通过 ToggleSwitch 控件上的 PointerEventHandler 的特定实例从其 IXamlDirectObject 实例添加/修改和删除 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);
xd.RemoveEventHandler(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);
xd->RemoveEventHandler(toggleSwitch, XamlEventIndex::UIElement_PointerEntered, toggleSwitchPointerHandler);

注解

RemoveEventHandler 只能用于删除 XamlEventIndex 枚举支持的事件的事件处理程序。

如果没有使用与方法调用的输入参数匹配的条件注册的处理程序,则调用此方法不起作用。

此方法忽略最初附加处理程序的 XamlDirect.AddEventHandler 调用中 handledEventsToo 参数是否为 true。

适用于

另请参阅