我可能在这里弄错了术语,但我想我正在尝试创建一个附加事件。
在 Surface SDK 中,您可以执行以下操作:
<Grid Background="{StaticResource WindowBackground}" x:Name="Foo" s:SurfaceFrameworkElement.ContactChanged="Foo_ContactChanged"/>
我想创建一个自定义事件,可以以相同的方式在 XAML 中为其添加处理程序,但我遇到了麻烦。
我可以创建自定义路由事件,但 XAML 智能感知看不到它,并且如果我只是定期键入它,则不会添加事件处理程序。这是我的事件定义:
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 );
}
}
我只是把这一切都错了吗?我看到的所有“附加行为”示例更多的是关于添加附加属性,然后使用设置该属性的元素进行操作。