FrameworkElement.OnVisualParentChanged(DependencyObject) Metodo

Definizione

Viene richiamato ogni volta che l'entità principale di questo elemento nella struttura ad albero visuale viene modificato.Invoked when the parent of this element in the visual tree is changed. Esegue l'override di OnVisualParentChanged(DependencyObject).Overrides 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.The old parent element. Può essere null per indicare che l'elemento prima non aveva un'entità principale visuale.May be null to indicate that the element did not have a visual parent previously.

Commenti

La struttura ad albero visuale è potenzialmente diversa dall'albero logico perché omette gli elementi che non eseguono il rendering visivo, ad esempio le raccolte, ed espande alcuni elementi sulla base del tema e della composizione dello stile.The visual tree is potentially different from the logical tree because it omits elements that do not render visually, such as collections, and expands some elements on the basis of their theme and style compositing. Per altre informazioni, vedere Strutture ad albero in WPF.For more information, see Trees in WPF.

Note per gli eredi

L'implementazione predefinita di questo metodo virtuale esegue una query per il nuovo elemento padre, genera vari eventi di inizializzazione e imposta i flag interni sullo stato di inizializzazione del FrameworkElement nel modo appropriato.The default implementation of this virtual method queries for the new parent, raises various initialization events, and sets internal flags about initialization state of the FrameworkElement as appropriate. Infine, chiama le implementazioni di base successive come dichiarate da UIElement, che a sua volta chiama la base in Visual.Finally, it calls the successive base implementations as declared by UIElement, which in turn calls its base in Visual. Chiamare sempre l'implementazione di base per mantenere questo comportamento, in caso contrario il comportamento dell'albero degli elementi per questo elemento quando dichiarato come figlio di un altro elemento potrebbe non essere quello previsto.Always call the base implementation to preserve this behavior, otherwise the element tree behavior for this element when declared as a child of another element may not be as expected.

Alcune classi di Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) esistenti eseguono l'override di questo metodo, ad esempio: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject).A few existing Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) classes override this method, for example: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject). Lo scenario più comune consiste nell'applicare che il nuovo elemento padre deve essere un tipo particolare.The most common scenario is to enforce that the new parent must be a particular type. Questo potrebbe comportare la generazione di un'eccezione se il nuovo elemento padre non è riuscito a eseguire un test del tipo.This might involve throwing an exception if the new parent failed some manner of type test. Una versione specializzata di questo scenario è disponibile nelle implementazioni per gli elementi dell'elenco e le voci di menu, che non hanno senso al di fuori di un oggetto visivo padre che possiede una raccolta appropriata in cui archiviarli.A specialized version of this scenario exists in implementations for list items and menu items, which do not make any sense outside a parent visual that owns an appropriate collection to store them in. Si noti che questi casi non generano necessariamente eccezioni, perché potrebbero essere presenti scenari di progettazione che si basano su elementi di riassociazione che sono momentaneamente privi di "normali" padre.Note that these cases do not necessarily raise exceptions, because there might be designer scenarios that rely on reparenting elements that are momentarily without their "regular" parents.

Questo metodo viene inoltre sottoposto a override in determinati elementi che sono in genere l'elemento radice, ad esempio Window.This method is also overridden in certain elements that are typically the root element, such as Window. Un altro caso è costituito dagli elementi che rappresentano l'elemento radice apparente nel markup, ma che generano automaticamente un'infrastruttura più elevata in un albero logico compilato, ad esempio Page.Another case is elements that are the apparent root element in markup but which autogenerate a greater infrastructure in a compiled logical tree (such as Page). Le implementazioni Window e Page deliberatamente il metodo.The Window and Page implementations deliberately seal the method.

Si applica a

Vedi anche