FrameworkPropertyMetadata.AffectsParentArrange 属性

定义

获取或设置一个值,该值指示依赖属性是否可能会影响其父元素布局在布局引擎操作期间的排列传递。

public:
 property bool AffectsParentArrange { bool get(); void set(bool value); };
public bool AffectsParentArrange { get; set; }
member this.AffectsParentArrange : bool with get, set
Public Property AffectsParentArrange As Boolean

属性值

true 如果存在此元数据的依赖属性可能会影响其父元素上的排列传递,则为 ;否则,为 false. 默认值为 false

例外

元数据已应用于依赖属性操作,以便密封元数据,并且无法设置元数据的属性。

注解

FrameworkElementFrameworkContentElement 包括监视对元素上存在的所有依赖属性的有效值更改的实现 OnPropertyChanged 。 作为该逻辑的一部分,更改有效值的依赖项属性以及具有设置为 AffectsParentArrangetrue 元数据将启动延迟的请求,使父元素的视觉对象失效。

通常,不需要将属性的更改FrameworkElement报告给父元素,AffectsParentArrange因为元素本身已经具有自己的AffectsArrange属性。true 这通常足够,因为子元素中的更改通常会在适当时启动父排列。 AffectsParentArrange 有时用于 FrameworkContentElement 派生类。 在这种情况下,子元素设置属性,但 FrameworkContentElement 派生类不控制其自己的呈现。 呈现由 FrameworkElement 充当内容主机的父元素处理。 例如,子元素对附加属性的值 FixedPage.Left 的更改使父元素的排列无效,因为必须更改父级中子级的位置。 因此,FixedPage.Left附加属性的元数据位于何处AffectsParentArrangetrue。 另一个示例是 Padding;当此属性发生更改时,父级可能会根据可用空间更改子级的位置。

由于此 WPF 框架级实现已到位,因此通常不需要查找依赖属性 AffectsParentArrange ,除非要大幅替换或修改 WPF 框架级布局行为。

自定义OnPropertyChanged实现可能选择对依赖项属性更改具有类似的行为,其中AffectsParentArrangetrue

任何派生类 PropertyMetadata 的属性通常在对象模型中定义为读写。 这样,就可以在初始化实例后调整它们。 但是,在调用RegisterAddOwner元数据过程中使用元数据后,或者OverrideMetadata,属性系统将密封该元数据实例和传达元数据细节的属性现在被视为不可变。 尝试在此元数据实例上设置此属性后IsSealedtrue将引发异常。

XAML 文本用法

此类的成员通常不用于 XAML。

适用于

另请参阅