This documentation is archived and is not being maintained.

FrameworkPropertyMetadataOptions Enumeration

Specifies the types of framework-level property behavior that pertain to a particular dependency property in the Windows Presentation Foundation (WPF) property system.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

public enum FrameworkPropertyMetadataOptions
<object property="enumerationMemberName" .../>

Member nameDescription
NoneNo options are specified; the dependency property uses the default behavior of the Windows Presentation Foundation (WPF) property system.
AffectsMeasureThe measure pass of layout compositions is affected by value changes to this dependency property.
AffectsArrangeThe arrange pass of layout composition is affected by value changes to this dependency property.
AffectsParentMeasureThe measure pass on the parent element is affected by value changes to this dependency property.
AffectsParentArrangeThe arrange pass on the parent element is affected by value changes to this dependency property.
AffectsRenderSome aspect of rendering or layout composition (other than measure or arrange) is affected by value changes to this dependency property.
InheritsThe values of this dependency property are inherited by child elements.
OverridesInheritanceBehaviorThe values of this dependency property span separated trees for purposes of property value inheritance.
NotDataBindableData binding to this dependency property is not allowed.
BindsTwoWayByDefaultThe BindingMode for data bindings on this dependency property defaults to TwoWay.
JournalThe values of this dependency property should be saved or restored by journaling processes, or when navigating by Uniform resource identifiers (URIs).
SubPropertiesDoNotAffectRenderThe subproperties on the value of this dependency property do not affect any aspect of rendering.

Use this enumeration when you construct a FrameworkPropertyMetadata instance where you want to specify one or more the framework-level metadata option settings.

You no longer use this enumeration after the constructor call. Instead, query the particular metadata option that was set during registration by checking the true or false value of a specific property of an existing FrameworkPropertyMetadata. These property names match the FrameworkPropertyMetadataOptions enumeration values except for NotDataBindable, which is IsNotDataBindable on the finished FrameworkPropertyMetadata.

The Journal option only specifies the intention to be journaled. The actual journaling may or may not be addressed by journaling services such as those that are present in the WPF viewer application. In particular, journaling has some known limitations if the element tree was constructed through code rather than XAML. For details, see Navigation Overview.


Although property value inheritance might appear to work for nonattached dependency properties, the inheritance behavior for a nonattached property through certain element boundaries in the runtime tree is undefined. Always use RegisterAttached to register properties where you specify Inherits in the metadata.

The following example calls the FrameworkPropertyMetadata constructor, and sets several options by using values from the FrameworkPropertyMetadataOptions enumeration.

fpm = new FrameworkPropertyMetadata(
    (FrameworkPropertyMetadataOptions.AffectsRender |
    new PropertyChangedCallback(OnCurrentReadingChanged),
    new CoerceValueCallback(CoerceCurrentReading)

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0