FrameworkElement.OnVisualParentChanged(DependencyObject) Método

Definição

Invocado quando o pai deste elemento na árvore visual é alterado.Invoked when the parent of this element in the visual tree is changed. Substitui 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)

Parâmetros

oldParent
DependencyObject

O elemento pai antigo.The old parent element. Pode ser null para indicar que o elemento não tinha um pai visual anteriormente.May be null to indicate that the element did not have a visual parent previously.

Comentários

A árvore visual é potencialmente diferente da árvore lógica porque omite elementos que não são processados visualmente, como coleções, e expande alguns elementos com base em seus temas e composição de estilo.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. Para obter mais informações, consulte Árvores no WPF.For more information, see Trees in WPF.

Notas aos Herdeiros

A implementação padrão desse método virtual consulta para o novo pai, gera vários eventos de inicialização e define sinalizadores internos sobre o estado de inicialização do FrameworkElement conforme apropriado.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. Por fim, ele chama as implementações de base sucessivas, conforme declarado por UIElement, que, por sua vez, chama sua base em Visual.Finally, it calls the successive base implementations as declared by UIElement, which in turn calls its base in Visual. Chame sempre a implementação base para preservar esse comportamento, caso contrário, o comportamento de árvore de elementos para esse elemento quando declarado como filho de outro elemento pode não ser como esperado.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.

Algumas classes de Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) existentes substituem esse método, por exemplo: 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). O cenário mais comum é impor que o novo pai deve ser um tipo específico.The most common scenario is to enforce that the new parent must be a particular type. Isso pode envolver lançar uma exceção se o novo pai falhar de alguma maneira do tipo teste.This might involve throwing an exception if the new parent failed some manner of type test. Uma versão especializada desse cenário existe em implementações para itens de lista e itens de menu, que não fazem sentido fora de um elemento visual pai que possui uma coleção apropriada na qual armazená-los.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. Observe que esses casos não geram necessariamente exceções, porque pode haver cenários de designer que dependem de elementos de repai que estão momentaneamente sem seus pais "regulares".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.

Esse método também é substituído em determinados elementos que normalmente são o elemento raiz, como Window.This method is also overridden in certain elements that are typically the root element, such as Window. Outro caso são elementos que são o elemento raiz aparente na marcação, mas que geram uma infraestrutura maior em uma árvore lógica compilada (como 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). As implementações de Window e Page lacram deliberadamente o método.The Window and Page implementations deliberately seal the method.

Aplica-se a

Veja também