A property in WPF and Silverlight that can be set through methods such as, styling, data binding, animation, and inheritance.
Dependency property is a property backed by a static DependencyProperty
instance.
The purpose of dependency properties is to provide a way to compute the value of a property based on the value of other inputs and to provide notification when computed value changes. The priority of inputs which contribute to computation is listed in Dependency Property value precedence overview.
Dependency properties usually have CLR "wrappers": the actual get and set implementations for the property.
Dependency property declaration (static field + wrapper) is a boilerplate code, which follows a certain pattern and can be generated by IDE (check Visual Studio shortcuts here).
General information: Dependency Property Overview