FrameworkElement.OnVisualParentChanged(DependencyObject) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Invocado quando o pai deste elemento na árvore visual é alterado. Substitui 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. Pode ser null
para indicar que o elemento não tinha um pai visual anteriormente.
Comentários
A árvore visual é potencialmente diferente da árvore lógica porque omite elementos que não são renderizados visualmente, como coleções, e expande alguns elementos com base em seu tema e composição de estilo. Para obter mais informações, consulte Árvores no WPF.
Notas aos Herdeiros
A implementação padrão dessas consultas de método virtual para o novo pai, gera vários eventos de inicialização e define sinalizadores internos sobre o FrameworkElement estado de inicialização do conforme apropriado. Por fim, ele chama as implementações base sucessivas como declaradas por , o que, por UIElementsua vez, chama sua base em Visual. Sempre chame a implementação base para preservar esse comportamento, caso contrário, o comportamento da árvore de elementos para esse elemento quando declarado como filho de outro elemento pode não ser o esperado.
Algumas classes WPF (Windows Presentation Foundation) existentes substituem esse método, por exemplo: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject). O cenário mais comum é impor que o novo pai deve ser um tipo específico. Isso pode envolver a geração de uma exceção se o novo pai falhou em algum tipo de teste de tipo. Existe uma versão especializada desse cenário em implementações para itens de lista e itens de menu, que não fazem nenhum sentido fora de um visual pai que possui uma coleção apropriada para armazená-los. Observe que esses casos não geram necessariamente exceções, pois pode haver cenários de designer que dependem de elementos de reparenciamento que estão momentaneamente sem seus pais "regulares".
Esse método também é substituído em determinados elementos que normalmente são o elemento raiz, como Window. Outro caso são elementos que são o elemento raiz aparente na marcação, mas que geram automaticamente uma infraestrutura maior em uma árvore lógica compilada (como Page). As Window implementações e as Page implementações selou deliberadamente o método.