FrameworkElement.OnVisualParentChanged(DependencyObject) 메서드

정의

시각적 트리에서 이 요소의 부모가 변경될 때 호출됩니다.Invoked when the parent of this element in the visual tree is changed. 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)

매개 변수

oldParent
DependencyObject

이전 부모 요소입니다.The old parent element. 요소가 이전에 시각적 부모를 포함하지 않았음을 나타내기 위해 null이 될 수 있습니다.May be null to indicate that the element did not have a visual parent previously.

설명

시각적 트리는 컬렉션과 같이 시각적으로 렌더링 되지 않는 요소를 생략 하 고 테마 및 스타일 합성을 기반으로 일부 요소를 확장 하기 때문에 논리적 트리와 다를 수 있습니다.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. 자세한 내용은 WPF의 트리를 참조하세요.For more information, see Trees in WPF.

상속자 참고

이 가상 메서드의 기본 구현은 새 부모에 대 한 쿼리를 생성 하 고, 다양 한 초기화 이벤트를 발생 시키고, FrameworkElement의 초기화 상태에 대 한 내부 플래그를 적절 하 게 설정 합니다.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. 마지막으로 UIElement에 의해 선언 된 연속 기본 구현을 호출 합니다. 그러면 Visual에서 해당 기본를 호출 합니다.Finally, it calls the successive base implementations as declared by UIElement, which in turn calls its base in Visual. 이 동작을 유지 하려면 항상 기본 구현을 호출 해야 합니다. 그렇지 않으면 다른 요소의 자식으로 선언 될 때이 요소에 대 한 요소 트리 동작이 예상과 다를 수 있습니다.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.

몇 가지 기존 WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) 클래스가이 메서드를 재정의 합니다 (예: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject)).A few existing WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) classes override this method, for example: OnVisualParentChanged(DependencyObject), OnVisualParentChanged(DependencyObject). 가장 일반적인 시나리오는 새 부모가 특정 형식 이어야 하도록 적용 하는 것입니다.The most common scenario is to enforce that the new parent must be a particular type. 이 경우 새 부모가 일종의 형식 테스트에 실패 한 경우 예외를 throw 할 수 있습니다.This might involve throwing an exception if the new parent failed some manner of type test. 이 시나리오의 특수 버전은 목록 항목 및 메뉴 항목에 대 한 구현에 있습니다 .이는 해당 컬렉션을 저장 하는 데 적합 한 컬렉션을 소유 하는 부모 시각적 개체 외부에서 의미가 없습니다.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. 이러한 경우에는 "일반" 부모 없이 일시적으로 부모 재지정 요소를 사용 하는 디자이너 시나리오가 있을 수 있으므로 예외를 발생 시 키 지 않습니다.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.

이 메서드는 일반적으로 Window와 같은 루트 요소에 해당 하는 특정 요소 에서도 재정의 됩니다.This method is also overridden in certain elements that are typically the root element, such as Window. 또 다른 경우는 태그의 명백한 루트 요소 이지만 컴파일된 논리적 트리에서 더 큰 인프라를 자동으로 생성 하는 요소 (예: 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). WindowPage 구현은 의도적으로 메서드를 봉인 합니다.The Window and Page implementations deliberately seal the method.

적용 대상

추가 정보