Dependency properties allow defining properties that provide support for data binding, animations, styling, and more on classes that derive from DependencyObject. They require defining a dependency property identifier, CLR property wrappers, and may involve property changed callbacks. Routed events can invoke handlers on multiple elements in an element tree rather than a single object, and are implemented as CLR events backed by the RoutedEvent class. StaticResource provides a value by substituting an already defined resource, while DynamicResource defers the value lookup to runtime.