Skip to main content
.NET Framework Class Library
FrameworkPropertyMetadataAffectsMeasure Property

Gets or sets a value that indicates whether a dependency property potentially affects the measure pass during layout engine operations.

Namespace:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
Syntax
Public Property AffectsMeasure As [%$TOPIC/ms600908_en-us_VS_110_1_0_0_0_0%]
public [%$TOPIC/ms600908_en-us_VS_110_1_0_1_0_0%] AffectsMeasure { get; set; }
public:
property [%$TOPIC/ms600908_en-us_VS_110_1_0_2_0_0%] AffectsMeasure {
	[%$TOPIC/ms600908_en-us_VS_110_1_0_2_0_1%] get ();
	void set ([%$TOPIC/ms600908_en-us_VS_110_1_0_2_0_2%] value);
}
member AffectsMeasure : [%$TOPIC/ms600908_en-us_VS_110_1_0_3_0_0%] with get, set
function get AffectsMeasure () : [%$TOPIC/ms600908_en-us_VS_110_1_0_4_0_0%] 
function set AffectsMeasure (value : [%$TOPIC/ms600908_en-us_VS_110_1_0_4_0_1%])

Members of this class are not typically used in XAML.

Property Value

Type: SystemBoolean
true if the dependency property on which this metadata exists potentially affects the measure pass; otherwise, false. The default is false.
Exceptions
ExceptionCondition
InvalidOperationException

The metadata has already been applied to a dependency property operation, so that metadata is sealed and properties of the metadata cannot be set.

Remarks

FrameworkElement and FrameworkContentElement include an implementation of OnPropertyChanged that monitors effective value changes to all dependency properties that exist on an element. As part of that logic, dependency properties that change effective value and have metadata with AffectsMeasure set to true will initiate a deferred request to invalidate the visuals for that element. Because this WPF framework-level implementation is already in place, you typically do not need to look for dependency properties with AffectsMeasure unless you are substantially replacing or modifying the WPF framework-level layout behavior.

Custom OnPropertyChanged implementations might choose to have similar behavior for dependency property changes where AffectsMeasure is true.

Properties on derived classes of PropertyMetadata are typically defined in the object model as read-write. This is so they can be adjusted after initialization of the instance. However, after the metadata is consumed as part of a call to Register, AddOwner, or OverrideMetadata, the property system will seal that metadata instance and properties that convey the specifics of the metadata are now considered immutable. Attempting to set this property after IsSealed is true on this metadata instance will raise an exception.

Examples

The following example obtains the default metadata from various dependency property fields, queries the value of various FrameworkPropertyMetadata properties on it, and uses the information to populate a table to implement a "metadata browser".

		pm = dp.GetMetadata(dp.OwnerType)


...


		Dim fpm As FrameworkPropertyMetadata = TryCast(pm, FrameworkPropertyMetadata)
		If fpm IsNot Nothing Then
			AffectsArrange.Text = If((fpm.AffectsArrange), "Yes", "No")
			AffectsMeasure.Text = If((fpm.AffectsMeasure), "Yes", "No")
			AffectsRender.Text = If((fpm.AffectsRender), "Yes", "No")
                [Inherits].Text = If((fpm.Inherits), "Yes", "No")
			IsDataBindingAllowed.Text = If((fpm.IsDataBindingAllowed), "Yes", "No")
			BindsTwoWayByDefault.Text = If((fpm.BindsTwoWayByDefault), "Yes", "No")
pm = dp.GetMetadata(dp.OwnerType);


...


FrameworkPropertyMetadata fpm = pm as FrameworkPropertyMetadata;
if (fpm!=null) {
    AffectsArrange.Text = (fpm.AffectsArrange) ? "Yes" : "No";
    AffectsMeasure.Text = (fpm.AffectsMeasure) ? "Yes" : "No";
    AffectsRender.Text = (fpm.AffectsRender) ? "Yes" : "No";
    Inherits.Text = (fpm.Inherits) ? "Yes" : "No";
    IsDataBindingAllowed.Text = (fpm.IsDataBindingAllowed) ? "Yes" : "No";
    BindsTwoWayByDefault.Text = (fpm.BindsTwoWayByDefault) ? "Yes" : "No";
}         
Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1