FrameworkElement.OnVisualParentChanged(DependencyObject) 메서드

정의

시각적 트리에서 이 요소의 부모가 변경될 때 호출됩니다. 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)

매개 변수

oldParent
DependencyObject

이전 부모 요소입니다. 요소가 이전에 시각적 부모를 포함하지 않았음을 나타내기 위해 null이 될 수 있습니다.

설명

시각적 트리는 컬렉션과 같이 시각적으로 렌더링되지 않는 요소를 생략하고 테마 및 스타일 구성을 기반으로 일부 요소를 확장하기 때문에 논리 트리와 잠재적으로 다릅니다. 자세한 내용은 WPF의 트리를 참조하세요.

상속자 참고

새 부모에 대한 이 가상 메서드 쿼리의 기본 구현은 다양한 초기화 이벤트를 발생시키고 적절한 초기화 상태에 대한 내부 플래그를 FrameworkElement 설정합니다. 마지막으로, 연속적인 기본 구현을 선언된 UIElement대로 호출하며, 이를 통해 해당 기본 Visual을 호출합니다. 항상 기본 구현을 호출하여 이 동작을 유지합니다. 그렇지 않으면 다른 요소의 자식으로 선언될 때 이 요소의 요소 트리 동작이 예상대로 되지 않을 수 있습니다.

몇 가지 기존 Windows Presentation Foundation(WPF) 클래스는 이 메서드를 재정의합니다(예: OnVisualParentChanged(DependencyObject), . OnVisualParentChanged(DependencyObject) 가장 일반적인 시나리오는 새 부모가 특정 형식이어야 하며, 새 부모가 형식 테스트에 실패한 경우 예외를 throw하는 작업이 포함될 수 있습니다. 이 시나리오의 특수 버전은 목록 항목 및 메뉴 항목에 대한 구현에 존재하며, 이를 저장할 적절한 컬렉션을 소유하는 부모 시각적 개체 외부에서는 의미가 없습니다. 이러한 경우 반드시 예외가 발생하는 것은 아닙니다. 이러한 경우는 "일반" 부모가 없는 순간적으로 재해석 요소에 의존하는 디자이너 시나리오가 있을 수 있기 때문입니다.

이 메서드는 일반적으로 루트 요소인 특정 요소(예: Window.)에서도 재정의됩니다. 또 다른 사례는 태그의 명백한 루트 요소이지만 컴파일된 논리 트리(예: Page)에서 더 큰 인프라를 자동으로 생성하는 요소입니다. 및 Page 구현은 Window 의도적으로 메서드를 봉인합니다.

적용 대상

추가 정보