FrameworkPropertyMetadata.AffectsParentArrange 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 disposizione del layout dell'elemento padre durante le operazioni del motore di layout.
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
Valore della proprietà
true
se la proprietà di dipendenza in cui si trovano i metadati può influire sul passaggio di disposizione in modo specifico nell'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 AffectsParentArrange impostato su true
avvieranno una richiesta posticipata per invalidare gli oggetti visivi per l'elemento padre.
In genere, non è necessario segnalare le modifiche di una FrameworkElement proprietà a un elemento padre usando AffectsParentArrange perché l'elemento stesso avrebbe già il proprio AffectsArrange come true
. Ciò è in genere sufficiente, perché le modifiche nell'elemento figlio in genere avviano una disposizione padre quando appropriato. AffectsParentArrange 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 FixedPage.Left proprietà associata da un elemento figlio invalida la disposizione dell'elemento padre, perché la posizione dell'elemento figlio nell'elemento padre deve essere modificata. Pertanto, la FixedPage.Left proprietà associata contiene metadati in cui AffectsParentArrange è true
. Un altro esempio è Padding. Quando questa proprietà viene modificata, l'elemento padre potrebbe modificare il posizionamento dell'elemento figlio, a seconda dello spazio disponibile.
Poiché questa implementazione a livello di framework WPF è già disponibile, in genere non è necessario cercare le proprietà di dipendenza, a AffectsParentArrange meno che non si stia sostituendo o modificando sostanzialmente il comportamento del layout a livello di framework WPF.
Le implementazioni personalizzate OnPropertyChanged potrebbero scegliere di avere un comportamento simile per le modifiche delle proprietà di dipendenza in cui AffectsParentArrange è 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.