FrameworkElement.OnVisualParentChanged(DependencyObject) Metodo
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.
Viene richiamato ogni volta che l'entità principale di questo elemento nella struttura ad albero visuale viene modificato. Esegue l'override di OnVisualParentChanged(DependencyObject).
protected public:
override void OnVisualParentChanged(System::Windows::DependencyObject ^ oldParent);
protected internal override void OnVisualParentChanged (System.Windows.DependencyObject oldParent);
override this.OnVisualParentChanged : System.Windows.DependencyObject -> unit
Protected Friend Overrides Sub OnVisualParentChanged (oldParent As DependencyObject)
Parametri
- oldParent
- DependencyObject
Elemento padre precedente. Può essere null
per indicare che l'elemento prima non aveva un'entità principale visuale.
Commenti
L'albero visivo è potenzialmente diverso dall'albero logico perché omette elementi che non eseguono il rendering visivo, ad esempio raccolte e espande alcuni elementi sulla base del tema e della composizione dello stile. Per altre informazioni, vedere Strutture ad albero in WPF.
Note per gli eredi
L'implementazione predefinita di questo metodo virtuale esegue query per il nuovo padre, genera vari eventi di inizializzazione e imposta flag interni sullo stato di inizializzazione dell'oggetto in base alle FrameworkElement esigenze. Infine, chiama le implementazioni di base successive come dichiarate da UIElement, che a sua volta chiama la sua base in Visual. Chiamare sempre l'implementazione di base per mantenere questo comportamento, altrimenti il comportamento dell'albero degli elementi per questo elemento quando dichiarato come figlio di un altro elemento potrebbe non essere come previsto.
Alcune classi di Windows Presentation Foundation esistenti (WPF) eseguono l'override di questo metodo, ad esempio: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject). Lo scenario più comune consiste nell'applicare che il nuovo padre deve essere un tipo specifico. Ciò potrebbe comportare la generazione di un'eccezione se il nuovo padre ha avuto esito negativo in qualche modo di test di tipo. Una versione specializzata di questo scenario esiste nelle implementazioni per le voci di elenco e le voci di menu, che non hanno alcun senso all'esterno di un oggetto visivo padre che possiede una raccolta appropriata in cui archiviarli. Si noti che questi casi non generano necessariamente eccezioni, perché potrebbero esserci scenari di progettazione che si basano su elementi di reparenting che sono momentaneamente senza i loro genitori "regolari".
Questo metodo viene sottoposto a override anche in determinati elementi che in genere sono l'elemento radice, ad esempio Window. Un altro caso è gli elementi che rappresentano l'elemento radice apparente nel markup, ma che generano automaticamente un'infrastruttura maggiore in un albero logico compilato (ad esempio Page). Le Window implementazioni e Page si applicano deliberatamente il metodo.