programing

Initialize Component()는 무엇을 하며 WPF에서는 어떻게 동작합니까?

javamemo 2023. 4. 15. 08:11
반응형

Initialize Component()는 무엇을 하며 WPF에서는 어떻게 동작합니까?

무엇인가.InitializeComponent()WPF에서는 어떻게 동작합니까?

일반적으로 우선입니다만, 특히 시공 순서의 상세한 내용과 부속 부동산이 있으면 어떤 일이 일어나는지 알고 싶습니다.

문의처InitializeComponent()(보통 적어도 기본 생성자에서 호출됩니다).Window그리고.UserControl)는 실제로는 (처음 예상했던 오브젝트 계층 호출이 아닌) 컨트롤의 부분 클래스에 대한 메서드 호출입니다.

이 방법에서는, XAML 로의 URI 를 특정합니다.Window/UserControl로딩 중이고, 로딩 중이고,System.Windows.Application.LoadComponent()스태틱 메서드 LoadComponent()는 전달된 URI에 있는 XAML 파일을 로드하여 XAML 파일의 루트 요소에 의해 지정된 객체의 인스턴스로 변환합니다.

좀 더 자세히 보면LoadComponent의 인스턴스를 만듭니다.XamlParser및 XAML 트리를 구축합니다.각 노드는 에 의해 해석됩니다.XamlParser.ProcessXamlNode()이것은 에 전달됩니다.BamlRecordWriter수업. 잠시 후 BAML이 오브젝트로 변환되는 방법에 대해 조금 혼란스럽지만, 이 정도면 깨달음으로 가는 길에 도움이 될 수도 있습니다.

주의: 흥미롭게도InitializeComponent의 메서드입니다.System.Windows.Markup.IComponentConnector인터페이스, 인터페이스Window/UserControlpartial generated 클래스에서 구현합니다.

코드를 보는 것도 도움이 됩니다.즉, 생성된 부분 클래스(Load Component를 호출하는 클래스)를 실제로 확인할 수 있습니다.

  1. 관심 있는 Visual Studio 솔루션의 솔루션 탐색기 창으로 이동하십시오.
  2. Solution Explorer 툴바에는 '모든 파일 표시'라는 버튼이 있습니다.버튼을 전환합니다.
  3. 다음으로 obj 폴더를 전개한 후 [Debug]폴더 또는 [Release]폴더(또는 구축 중인 설정)를 펼치면 YourClass.g.cs 이라는 이름의 파일이 표시됩니다.

YourClass.g.cs...는 생성된 부분 클래스의 코드입니다.다시 한 번 열어보면 Initialize Component 메서드 및 Load Component 호출 방법 등을 볼 수 있습니다.

언급URL : https://stackoverflow.com/questions/245825/what-does-initializecomponent-do-and-how-does-it-work-in-wpf

반응형