FrameworkPropertyMetadata.AffectsParentArrange Proprietà

Definizione

Ottiene o imposta un valore che indica se una proprietà di dipendenza influisce potenzialmente 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 su cui esistono questi metadati potenzialmente influisce sul passaggio arrange specificamente sul relativo elemento padre; in caso contrario, false. Il valore predefinito è false.

Eccezioni

I metadati sono già stati applicati a un'operazione di proprietà di dipendenza, in modo che i metadati siano sealed e le proprietà dei metadati non possano essere impostate.

Commenti

FrameworkElement e FrameworkContentElement includono un'implementazione di OnPropertyChanged che monitora le modifiche effettive dei valori a tutte le proprietà di 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 ha 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 macchine virtuali Windows è già disponibile, in genere non è necessario cercare le proprietà di dipendenza con AffectsParentArrange a meno che non si stia sostituendo o modificando sostanzialmente il comportamento del layout a livello di framework macchine virtuali Windows.

Le implementazioni personalizzate OnPropertyChanged possono 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à sigillerà 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.

Si applica a

Vedi anche