According to Redgate's Reflector, there is no difference. Both methods eventually call the internal method EventHandlerStore.AddRoutedEventHandler
. This is the reflector output of the add
accessor for the PreviewMouseLeftButtonDown
event (in the class UIElement
):
public void add_PreviewMouseLeftButtonDown(MouseButtonEventHandler value)
{
this.AddHandler(PreviewMouseLeftButtonDownEvent, value, false);
}
As you can see it calls UIElement.AddHandler
for you.
Before you edited your question you were asking about the Opened
event of the popup. In that case, there is a difference: First, the Opened
event is not implemented as a routed event but as a simple event, so you can't even use the AddHandler
call on it. Secondly, the reflector shows that a different method is called in the EventHandlerStore
which adds the handler to a simple delegate collection.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…