FrameworkPropertyMetadata.AffectsRender 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示依赖属性是否可能以某种方式影响常规布局,而不会影响排列或度量,但需要重绘。
public:
property bool AffectsRender { bool get(); void set(bool value); };
public bool AffectsRender { get; set; }
member this.AffectsRender : bool with get, set
Public Property AffectsRender As Boolean
属性值
true 如果存在此元数据的依赖属性会影响呈现,则为否则,为 false. 默认值为 false。
例外
元数据已应用于依赖属性操作,以便密封元数据,并且无法设置元数据的属性。
示例
以下示例从各种依赖属性字段获取默认元数据,查询其上各种 FrameworkPropertyMetadata 属性的值,并使用信息填充表来实现“元数据浏览器”。
pm = dp.GetMetadata(dp.OwnerType);
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";
}
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")
注解
FrameworkElement 并 FrameworkContentElement 包括监视对元素上存在的所有依赖属性的有效值更改的实现 OnPropertyChanged 。 作为该逻辑的一部分,更改有效值的依赖项属性,并且具有设置为的AffectsRendertrue元数据将启动延迟请求,使该元素的视觉对象失效。 由于此 WPF 框架级实现已到位,因此通常不需要查找依赖属性 AffectsRender ,除非要大幅替换或修改 WPF 框架级布局行为。
自定义OnPropertyChanged实现可能选择对依赖项属性更改具有类似的行为,其中AffectsRender。true
任何派生类 PropertyMetadata 的属性通常在对象模型中定义为读写。 这样,就可以在初始化实例后调整它们。 但是,在调用RegisterAddOwner元数据过程中使用元数据后,或者OverrideMetadata,属性系统将密封该元数据实例和传达元数据细节的属性现在被视为不可变。 尝试在此元数据实例上设置此属性后IsSealedtrue将引发异常。
XAML 文本用法
此类的成员通常不用于 XAML。