2009-03-11 8 views

Antwort

7

Versuchen Sie dies, um alle Ereignisse auf dem Button-Typ zu erhalten ... Sie können einen anderen Typ ersetzen.

Sie können auch die folgenden ersetzen, um ALLE Routingereignisse für ALLE Typen zu erhalten, aber das wäre eine ziemliche Liste!

RoutedEvent[] events = EventManager.GetRoutedEvents(); 
2

Sie die RegisterClassHandler Methode der Eventmanager verwenden können, um staticly sofort auf alle Elemente 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 
} 
1

Ich habe diese von der Inspiration aus: http://geekswithblogs.net/tkokke/archive/2009/07/17/monitoring-routed-events-in-wpf.aspx

/// <summary> 
    /// This is used for debugging, when your looking for a specific event 
    /// </summary> 
    public static void RegisterAllEvents(Type type, FrameworkElement target) 
    { 
     var events = EventManager.GetRoutedEvents(); 
     foreach (var routedEvent in events) 
     { 
      EventManager.RegisterClassHandler(type, 
           routedEvent, new RoutedEventHandler((sender, args) => 
       { 
        if (sender != target) 
         return; 
        System.Diagnostics.Debug.WriteLine(args.OriginalSource + "=>" + args.RoutedEvent); 
       })); 
     } 
    } 
Verwandte Themen