Ответ 1
Согласно Redgate Reflector, нет никакой разницы. Оба метода в конечном итоге вызывают внутренний метод EventHandlerStore.AddRoutedEventHandler
. Это выход отражателя для add
аксессуара add
для события PreviewMouseLeftButtonDown
(в классе UIElement
):
public void add_PreviewMouseLeftButtonDown(MouseButtonEventHandler value)
{
this.AddHandler(PreviewMouseLeftButtonDownEvent, value, false);
}
Как вы видите, он вызывает UIElement.AddHandler
для вас.
Прежде чем вы редактируете свой вопрос, вы спрашивали о событии Opened
всплывающего окна. В этом случае есть разница: во-первых, событие Opened
не реализовано как маршрутизируемое событие, а как простое событие, поэтому вы даже не можете использовать вызов AddHandler
на нем. Во-вторых, рефлектор показывает, что в EventHandlerStore
вызывается другой метод, который добавляет обработчик к простой коллекции делегатов.