DependencyProperty Class
Represents a property that can be set through methods such as, styling, data binding, animation, and inheritance.
Namespace: System.Windows
Assembly: WindowsBase (in WindowsBase.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
[TypeConverterAttribute("System.Windows.Markup.DependencyPropertyConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")] public sealed class DependencyProperty
<object property="dependencyPropertyName"/> - or - <object property="ownerType.dependencyPropertyName"/> - or - <object property="attachedPropertyOwnerType.attachedPropertyName"/>
XAML Values
The DependencyProperty type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | DefaultMetadata | Gets the default metadata of the dependency property. |
![]() | GlobalIndex | Gets an internally generated value that uniquely identifies the dependency property. |
![]() | Name | Gets the name of the dependency property. |
![]() | OwnerType | Gets the type of the object that registered the dependency property with the property system, or added itself as owner of the property. |
![]() | PropertyType | Gets the type that the dependency property uses for its value. |
![]() | ReadOnly | Gets a value that indicates whether the dependency property identified by this DependencyProperty instance is a read-only dependency property. |
![]() | ValidateValueCallback | Gets the value validation callback for the dependency property. |
| Name | Description | |
|---|---|---|
![]() | AddOwner(Type) | Adds another type as an owner of a dependency property that has already been registered. |
![]() | AddOwner(Type, PropertyMetadata) | Adds another type as an owner of a dependency property that has already been registered, providing dependency property metadata for the dependency property as it will exist on the provided owner type. |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() | GetHashCode | Returns a hash code for this DependencyProperty. (Overrides Object.GetHashCode().) |
![]() | GetMetadata(DependencyObject) | Returns the metadata for this dependency property as it exists on the specified object instance. |
![]() | GetMetadata(DependencyObjectType) | Returns the metadata for this dependency property as it exists on a specified type. |
![]() | GetMetadata(Type) | Returns the metadata for this dependency property as it exists on a specified existing type. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | IsValidType | Determines whether a specified value is acceptable for this dependency property's type, as checked against the property type provided in the original dependency property registration. |
![]() | IsValidValue | Determines whether the provided value is accepted for the type of property through basic type checking, and also potentially if it is within the allowed range of values for that type. |
![]() | OverrideMetadata(Type, PropertyMetadata) | Specifies alternate metadata for this dependency property when it is present on instances of a specified type, overriding the metadata that existed for the dependency property as it was inherited from base types. |
![]() | OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey) | Supplies alternate metadata for a read-only dependency property when it is present on instances of a specified type, overriding the metadata that was provided in the initial dependency property registration. You must pass the DependencyPropertyKey for the read-only dependency property to avoid raising an exception. |
![]() ![]() | Register(String, Type, Type) | Registers a dependency property with the specified property name, property type, and owner type. |
![]() ![]() | Register(String, Type, Type, PropertyMetadata) | Registers a dependency property with the specified property name, property type, owner type, and property metadata. |
![]() ![]() | Register(String, Type, Type, PropertyMetadata, ValidateValueCallback) | Registers a dependency property with the specified property name, property type, owner type, property metadata, and a value validation callback for the property. |
![]() ![]() | RegisterAttached(String, Type, Type) | Registers an attached property with the specified property name, property type, and owner type. |
![]() ![]() | RegisterAttached(String, Type, Type, PropertyMetadata) | Registers an attached property with the specified property name, property type, owner type, and property metadata. |
![]() ![]() | RegisterAttached(String, Type, Type, PropertyMetadata, ValidateValueCallback) | Registers an attached property with the specified property type, owner type, property metadata, and value validation callback for the property. |
![]() ![]() | RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata) | Registers a read-only attached property, with the specified property type, owner type, and property metadata. |
![]() ![]() | RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback) | Registers a read-only attached property, with the specified property type, owner type, property metadata, and a validation callback. |
![]() ![]() | RegisterReadOnly(String, Type, Type, PropertyMetadata) | Registers a read-only dependency property, with the specified property type, owner type, and property metadata. |
![]() ![]() | RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback) | Registers a read-only dependency property, with the specified property type, owner type, property metadata, and a validation callback. |
![]() | ToString | Returns the string representation of the dependency property. (Overrides Object.ToString().) |
| Name | Description | |
|---|---|---|
![]() ![]() | UnsetValue | Specifies a static value that is used by the WPF property system rather than null to indicate that the property exists, but does not have its value set by the property system. |
A DependencyProperty supports the following capabilities in Windows Presentation Foundation (WPF):
The property can be set in a style. For more information, see Styling and Templating.
The property can be set through data binding. For more information about data binding dependency properties, see How to: Bind the Properties of Two Controls.
The property can be set with a dynamic resource reference. For more information, see XAML Resources.
The property can inherit its value automatically from a parent element in the element tree. For more information, see Property Value Inheritance.
The property can be animated. For more information, see Animation Overview.
The property can report when the previous value of the property has been changed and the property value can be coerced. For more information, see Dependency Property Callbacks and Validation.
The property reports information to WPF, such as whether changing a property value should require the layout system to recompose the visuals for an element.
The property receives support in the WPF Designer for Visual Studio. For example, the property can be edited in the Properties window.
To learn more about dependency properties, see Dependency Properties Overview. If you want properties on your custom types to support the capabilities in the preceding list, you should create a dependency property. To learn how to create custom dependency properties, see Custom Dependency Properties.
An attached property is a property that enables any object to report information to the type that defines the attached property. In WPF, any type that inherits from DependencyObject can use an attached property regardless of whether the type inherits from the type that defines the property. An attached property is a feature of the XAML language. To set an attached property in XAML, use the ownerType.propertyName syntax. An example of an attached property is the DockPanel.Dock property. If you want to create a property that can be used on all DependencyObject types, then you should create an attached property. To learn more about attached properties, including how to create them, see Attached Properties Overview.
