Selon Redgate's Reflector, il n'y a pas de différence. Les deux méthodes appellent finalement la méthode interne EventHandlerStore.AddRoutedEventHandler
. Ceci est la sortie de réflecteur du accesseur add
pour l'événement PreviewMouseLeftButtonDown
(dans la classe UIElement
):
public void add_PreviewMouseLeftButtonDown(MouseButtonEventHandler value)
{
this.AddHandler(PreviewMouseLeftButtonDownEvent, value, false);
}
Comme vous pouvez le voir appelle UIElement.AddHandler
pour vous.
Avant de modifier votre question, vous posiez des questions sur l'événement Opened
de la fenêtre contextuelle. Dans ce cas, il existe une différence: tout d'abord, l'événement Opened
n'est pas implémenté en tant qu'événement routé mais en tant qu'événement simple, vous ne pouvez donc même pas utiliser l'appel AddHandler
. Deuxièmement, le réflecteur montre qu'une méthode différente est appelée dans le EventHandlerStore
qui ajoute le gestionnaire à une collection de délégués simple.