我可能在这里弄错了术语,但我想我正在尝试创建附加事件。WPF中的自定义附加事件
在表面SDK,你可以做这样的事情:
<Grid Background="{StaticResource WindowBackground}" x:Name="Foo" s:SurfaceFrameworkElement.ContactChanged="Foo_ContactChanged"/>
我想创建一个该处理程序可以在XAML以同样的方式被添加自定义事件,但我有麻烦了。
我可以创建自定义路由事件,但XAML IntelliSense不看它,如果我只是在定期类型,它不添加事件处理程序。这里是我的事件定义:
public static class TagRectEvents
{
public static readonly RoutedEvent TagRectEnterEvent = EventManager.RegisterRoutedEvent(
"TagRectEnter", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TagRectEvents));
public static void AddTagRectEnterHandler(DependencyObject d, RoutedEventHandler handler)
{
UIElement element = d as UIElement;
if (element == null)
{
return;
}
element.AddHandler(TagRectEvents.TagRectEnterEvent, handler);
}
public static void RemoveTagRectEnterHandler(DependencyObject d, RoutedEventHandler handler)
{
UIElement element = d as UIElement;
if (element == null)
{
return;
}
element.RemoveHandler(TagRectEvents.TagRectEnterEvent, handler);
}
}
我只是去了解这一切错了吗?我看到的所有“附加行为”示例都是关于添加附加属性,然后使用设置该属性的元素进行操作的。