Возможно, здесь неправильно понимается терминология, но я думаю, что пытаюсь создать прикрепленное событие.
В Surface SDK вы можете делать такие вещи, как:
<Grid Background="{StaticResource WindowBackground}" x:Name="Foo" s:SurfaceFrameworkElement.ContactChanged="Foo_ContactChanged"/>
Я хочу создать пользовательское событие, для которого обработчик может быть добавлен в XAML таким же образом, но у меня возникли проблемы.
Я могу создать пользовательское перенаправленное событие, но intellisense 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 );
}
}
Я просто ошибаюсь? Все примеры «прикрепленного поведения», которые я вижу, больше касаются добавления присоединенного свойства, а затем выполнения действий с элементами, которые устанавливают это свойство.