FrameworkPropertyMetadata.AffectsMeasure Egenskap

Definition

Hämtar eller anger ett värde som anger om en beroendeegenskap potentiellt påverkar måttpasset under layoutmotoråtgärder.

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

Egenskapsvärde

trueom beroendeegenskapen som dessa metadata finns på potentiellt påverkar måttpasset. annars . false Standardvärdet är false.

Undantag

Metadata har redan tillämpats på en beroendeegenskapsåtgärd, så att metadata är förseglade och att egenskaperna för metadata inte kan anges.

Exempel

I följande exempel hämtas standardmetadata från olika beroendeegenskapsfält, frågar efter värdet för olika FrameworkPropertyMetadata egenskaper på den och använder informationen för att fylla i en tabell för att implementera en "metadatawebbläsare".

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")

Kommentarer

FrameworkElement och FrameworkContentElement inkludera en implementering av OnPropertyChanged som övervakar effektiva värdeändringar för alla beroendeegenskaper som finns i ett element. Som en del av den logiken initierar beroendeegenskaper som ändrar effektivt värde och har metadata med AffectsMeasure inställt på true en uppskjuten begäran om att ogiltigförklara de visuella objekten för det elementet. Eftersom den här WPF implementeringen på ramverksnivå redan är på plats behöver du vanligtvis inte leta efter beroendeegenskaper med AffectsMeasure om du inte väsentligen ersätter eller ändrar WPF layoutbeteende på ramverksnivå.

Anpassade OnPropertyChanged implementeringar kan välja att ha liknande beteende för beroendeegenskapsändringar där AffectsMeasure är true.

Egenskaper för härledda klasser PropertyMetadata av definieras vanligtvis i objektmodellen som skrivskyddad. Detta gör att de kan justeras efter initieringen av instansen. Men när metadata har förbrukats som en del av ett anrop till Register, AddOwnereller OverrideMetadata, kommer egenskapssystemet att försegla att metadatainstansen och egenskaper som förmedlar detaljerna i metadata nu anses oföränderliga. Om du försöker ange den här egenskapen när IsSealed den finns true på den här metadatainstansen genereras ett undantag.

XAML-textanvändning

Medlemmar i den här klassen används vanligtvis inte i XAML.

Gäller för

Se även