FrameworkPropertyMetadata.AffectsMeasure Özellik

Tanım

Bir bağımlılık özelliğinin, düzen altyapısı işlemleri sırasında ölçü geçişini etkileyip etkilemediğini gösteren bir değer alır veya ayarlar.Gets or sets a value that indicates whether a dependency property potentially affects the measure pass during layout engine operations.

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

Özellik Değeri

Boolean

true Bu meta verilerin mevcut olduğu bağımlılık özelliği, büyük olasılıkla ölçü geçişini etkiler; Aksi takdirde, false .true if the dependency property on which this metadata exists potentially affects the measure pass; otherwise, false. Varsayılan değer: false.The default is false.

Özel durumlar

Meta veriler bir bağımlılık özelliği işlemine zaten uygulandı, bu nedenle meta verilerin mühürlenmesi ve meta verilerin özellikleri ayarlanamaz.The metadata has already been applied to a dependency property operation, so that metadata is sealed and properties of the metadata cannot be set.

Örnekler

Aşağıdaki örnek, çeşitli bağımlılık özelliği alanlarından varsayılan meta verileri alır, üzerinde çeşitli özelliklerin değerlerini sorgular FrameworkPropertyMetadata ve bir tabloyu bir "meta veri tarayıcısı" uygulamak üzere doldurmak için bu bilgileri kullanır.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);
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")

Açıklamalar

FrameworkElement ve FrameworkContentElement , OnPropertyChanged etkin değer değişikliklerinin bir öğe üzerinde mevcut olan tüm bağımlılık özelliklerine göre izleyicilerini içerir.FrameworkElement and FrameworkContentElement include an implementation of OnPropertyChanged that monitors effective value changes to all dependency properties that exist on an element. Bu mantığın bir parçası olarak, etkin değeri değiştiren ve meta verisi olan bağımlılık özellikleri, AffectsMeasure true Bu öğenin görsellerini geçersiz kılmak için ertelenmiş bir istek başlatacak.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. Bu WPF framework düzeyi uygulama zaten mevcut olduğundan, AffectsMeasure WPF framework düzeyi düzen davranışını önemli ölçüde değiştirmediğiniz veya değiştirmediğiniz müddetçe genellikle bağımlılık özelliklerini aramanız gerekmez.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.

Özel OnPropertyChanged uygulamalar, olduğu durumlarda bağımlılık özelliği değişiklikleri için benzer davranışları tercih edebilir AffectsMeasure true .Custom OnPropertyChanged implementations might choose to have similar behavior for dependency property changes where AffectsMeasure is true.

Türetilmiş sınıflarının özellikleri PropertyMetadata genellikle nesne modelinde okuma-yazma olarak tanımlanır.Properties on derived classes of PropertyMetadata are typically defined in the object model as read-write. Bu, örneğin başlatıldıktan sonra ayarlanabilmesi için.This is so they can be adjusted after initialization of the instance. Ancak,, veya ' a yapılan çağrının bir parçası olarak meta veriler tüketildikten sonra özellik sistemi, meta verilerin Register AddOwner OverrideMetadata özelliklerini ileten meta veri örneğinin ve özelliklerinin artık sabit olarak kabul edileceği şekilde mühürlendirilecektir.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. Bu meta veri örneğinde olduktan sonra bu özelliği ayarlamaya çalışmak IsSealed true bir özel durum oluşturacak.Attempting to set this property after IsSealed is true on this metadata instance will raise an exception.

XAML Metni KullanımıXAML Text Usage

Bu sınıfın üyeleri ' de genellikle kullanılmaz XAMLXAML .Members of this class are not typically used in XAMLXAML.

Şunlara uygulanır

Ayrıca bkz.