1 Results for '라이프사이클'

  1. 2008.10.25 컨트롤 라이프사이클과 타이밍 (2)

Dave Relyea’s Silverlight Blog에 10월 11일에 올라온 글인데 왜 놓쳤는지 몰라요. 엄청 중요한 내용이라 그대로 옮겨 볼께요. 이 글은 실버라이트의 컨트롤이 생성되고 속성이 설정될 때 어떤 이벤트들과 오버라이드들이 어떤 타이밍으로 호출되는지를 설명합니다.

동작 XAML에서 만든 컨트롤 코드에서 만든 컨트롤
컨트롤의 생성자Ctor 시작 태그가 파싱되자 마자. new로 인스턴스를 생성할 때.
명시적인 스타일 적용됨 Style 속성이 XAML에서 설정되었다면 종료 태그가 파싱되자 마자 적용. Style 속성이 설정되자 마자.
빌트인 스타일(generic.xaml) 적용됨 명시적인 스타일이 적용된 후 종료 태그가 파싱되자마자. 이것은 명시적인 스타일을 덮어쓰지 않음. 컨트롤이 비주얼 트리에 들어갈 때. 이것은 명시적인 스타일을 덮어쓰지 않음.
프로퍼티 설정됨 어트리뷰트가 파싱되었을 때. 해당 속성을 설정했을 때.
Loaded 이벤트 엘리먼트가 비주얼 트리에 추가되었을 때 전달됨. 이벤트는 다음 프레임이 렌더링 되기 전에 발생되고 레이아웃 변경 전에 일어남. (XAML과 동일)
템플릿 적용됨(컨트롤의 비주얼이 템플릿에서 만들어진 경우) 레이아웃 측정 과정.
컨트롤이 비주얼 트리를 가지고 있지 않다면 템플릿 프로퍼티가 적용됨. 컨트롤은 비주얼 트리 없이 라이프 사이클을 시작하고 템플릿 프로퍼티가 설정될 때 비주얼 트리가 클리어됨. ApplyTemplate을 호출하여 명시적으로 지시할 수 있음.
(XAML과 동일)
OnApplyTemplate 호출됨 템플릿이 적용된 시점. 기반 클래스의 OnApplyTemplate을 호출할 필요는 없지만, 사용자가 구현한 커스텀 컨트롤을 상속 할 때에는 필요할 수 있음. (XAML과 동일)
비주얼이 최초로 사용 가능하게 됨. OnApplyTemplate에서 GetTemplateChild로 획득한 비주얼에 대해서. (XAML과 동일)
MeasureOverride 호출됨 레이아웃 측정 과정.
만약 측정 과정중에 템플릿이 확장된 경우 MeasureOverride는 템플릿 확장이 끝난 후 호출됨.
(XAML과 동일)
ArrangeOverride 호출됨 컨트롤의 정렬 과정. 측정 과정이 완료된 후 발생. (XAML과 동일)
SizeChanged 이벤트 측정과 정렬 과정이 완료된 후. (XAML과 동일)
LayoutUpdated 이벤트 SizeChanged 이벤트가 발생된 후. (XAML과 동일)
저작자 표시 동일 조건 변경 허락
신고
Posted by gongdo


티스토리 툴바