A week or so ago when was learning about dependency properties I read a ton of theoretical stuff out there which is very important, but at the end of the day didn't understand the actual, tangible difference between them and regular properties. The "how does this actually apply" in the real world was missing so I spent a day playing around with them and posted my findings as sort of an executive summary.
Today I was working on events in a user control and for the first time had to use a routed event. Again, I had read a ton about routed events but didn't understand the exact implications in the IDE and "real world" of what they meant. Its simple actually. Regular events still work, but if you want to do anything in Blend or at the "XAML" level with your events you are going to need routed events. In my code I declared an event in my user control the regular way, compiled, and as always could receive that event on my form that hosts the usercontrol in code. However, in Blend I could not add a trigger on my usercontrol for that event. I then changed my regular event to a routed event and voila, I could also consume it in Blend as a trigger. The event I wanted the form to act on was when a maximize button was pressed on the user control. The form is then going to re-do its layout using an animation. The event is now simply built in the usercontrol as:
Public Shared ReadOnly btnMax_Clicked_Event As RoutedEvent = EventManager.RegisterRoutedEvent("btnMax_Clicked", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(ENPSvXObjectHost))
Public Event btnMax_Clicked As RoutedEventHandler
That's all there is to it. If you want to use your events in Blend (XAML) you have to make them Routed Events!