FrameworkPropertyMetadata.AffectsParentMeasure Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se una proprietà di dipendenza può influire sul passaggio di misurazione del layout dell'elemento padre durante le operazioni del motore di layout.
public:
property bool AffectsParentMeasure { bool get(); void set(bool value); };
public bool AffectsParentMeasure { get; set; }
member this.AffectsParentMeasure : bool with get, set
Public Property AffectsParentMeasure As Boolean
Valore della proprietà
true
se la proprietà di dipendenza su cui esistono questi metadati influisce potenzialmente sul passaggio della misura specificamente sul relativo elemento padre; in caso contrario, false
. Il valore predefinito è false
.
Eccezioni
Poiché sono già stati applicati a un'operazione della proprietà di dipendenza, questi metadati sono sealed e non è possibile impostarne le proprietà.
Commenti
FrameworkElement e FrameworkContentElement includono un'implementazione di che monitora le modifiche effettive dei valori a tutte le proprietà di OnPropertyChanged dipendenza esistenti in un elemento. Come parte di tale logica, le proprietà di dipendenza che modificano il valore effettivo e hanno metadati con AffectsParentMeasure impostato su true
avvieranno una richiesta posticipata per invalidare gli oggetti visivi per l'elemento padre. Poiché questa implementazione a livello di framework WPF è già disponibile, in genere non è necessario cercare le proprietà di dipendenza, a AffectsParentMeasure meno che non si stia sostituendo o modificando sostanzialmente il comportamento del layout a livello di framework WPF.
In genere, non è necessario segnalare le modifiche di una FrameworkElement proprietà a un elemento padre usando AffectsParentMeasure perché l'elemento stesso avrebbe già il proprio AffectsMeasure come true
. Ciò è in genere sufficiente, perché le modifiche nell'elemento figlio in genere avviano un passaggio di misura padre quando appropriato. AffectsParentMeasure viene talvolta usato per una FrameworkContentElement classe derivata. In questo caso, l'elemento figlio imposta una proprietà, ma una FrameworkContentElement classe derivata non controlla il proprio rendering. Il rendering viene gestito da un FrameworkElement elemento padre che funge da host di contenuto. Ad esempio, una modifica al valore della proprietà da parte di Paragraph.KeepWithNext un elemento figlio invalida la misura dell'elemento padre, perché la spaziatura relativa dei paragrafi può cambiare e potrebbe aumentare o diminuire le dimensioni dell'host del contenuto. Pertanto, la Paragraph.KeepWithNext proprietà contiene metadati in cui AffectsParentMeasure è true
.
Gli elementi host del contenuto cercano spesso anche modifiche nelle proprietà di dipendenza in cui AffectsParentMeasure è true
, come parte della logica di rendering dell'host del contenuto. Ad esempio, l'elemento TextBox deve rispondere a determinate modifiche all'interno del testo che potrebbero richiedere la modifica del rettangolo di selezione dell'oggetto TextBox stesso.
Le implementazioni personalizzate OnPropertyChanged potrebbero scegliere di avere un comportamento simile per le modifiche delle proprietà di dipendenza in cui AffectsParentMeasure è true
.
Le proprietà di qualsiasi classe derivata di PropertyMetadata vengono in genere definite nel modello a oggetti come lettura/scrittura. In questo modo possono essere regolati dopo l'inizializzazione dell'istanza. Tuttavia, dopo che i metadati vengono utilizzati come parte di una chiamata a Register, AddOwnero OverrideMetadata, il sistema di proprietà continuerà a bloccare l'istanza e le proprietà dei metadati che trasmettono le specifiche dei metadati sono ora considerate non modificabili. Se si tenta di impostare questa proprietà dopo IsSealed che si trova true
in questa istanza di metadati, verrà generata un'eccezione.
Utilizzo del testo XAML
I membri di questa classe non vengono in genere usati in XAML.