Events in WPF (and Silverlight) are dealt with differently, using “Routing Events”.  Why?

  • Routed events enable you to add multiple levels of complexity to your UIs and the response to user input.

What do you need to know about the concept of routed events:

  • How to handle a routed event
  • Define and register a new routed event
  • Handle an application lifetime event
    • http://msdn.microsoft.com/en-us/library/ms748948.aspx#WindowLifetime
    • This can be confusing, but it relates
      • Activated
        • Occurs when you switch from another application to your program. It also is raised the first time you show a window
      • DeactivatedDeactivated
        • Occurs when you switch to another programDispatcherUnhandledExceptionDispatcherUnhandledExceptionRaised when an unhandled exception occurs in your application.
      • Exit
        • Occurs when the application is shut down or any reason
      • SessionEnding
        • Occurs when the Windows session is ending, such as when the user shuts down the computer or logs off
      • StartupStartup
        • Occurs as the application is started.
  • Use the EventManager class
    • GetRoutedEvents
      • Returns an array that contains all the routed events that have been registered in this application
    • GetRoutedEventsForOwner
      • Returns an array of all the routed events that have been registered for a specified element in this application
    • RegisterClassHandler
      • Registers a class-level event handler
    • RegisterRoutedEvent
      • An instance-level event handler