Frage

Ich möchte für alle verfügbaren Elemente Ereignisse in einem Aufruf an Haken. Manche Dinge wie folgt:

elem.AddHandler(AnyRoutedEvent, (RoutedEventHandler)handler)

Wie kann ich das tun?

War es hilfreich?

Lösung

Versuchen Sie, diese für alle Veranstaltungen auf den Button-Typ zu bekommen ... Sie können einen anderen Typ ersetzen.

RoutedEvent[] events = EventManager.GetRoutedEventsForOwner(typeof(Button));

foreach (RoutedEvent e in events)
   elem.AddHandler(e, handler);

Sie können auch ersetzen die folgenden für alle Arten ALL geroutet Ereignisse zu bekommen, aber das wäre durchaus eine Liste sein!

RoutedEvent[] events = EventManager.GetRoutedEvents();

Andere Tipps

Sie können die RegisterClassHandler Methode der Eventmanager verwenden, um staticly auf alle Elemente auf einmal hören:)

EventManager.RegisterClassHandler(typeof(your class), Button.ClickEvent, new RoutedEventHandler(OnButtonClick));

static void OnButtonClick(object sender, RoutedEventArgs e)
{
    //Do awesome stuff with the button click
}

Ich habe diese von der Inspiration aus:

scroll top