Xaml Resource 및 Window 로드 예제
1. 비주얼 스튜디오 -> WPF 응용프로그램 , 프로젝트명 : LoadXamlWindow
2. App.xaml, MainWindow.xaml 삭제
3. 프로젝트 -> 우측마우스 -> 추가 -> 새항목추가
[XamlWindow.xml] – 코딩해보세요
파일 생성 후 속성을 확인하면 빌드작업 속성에 “Resource”로 되어 있다.
4. 프로젝트 -> 우측마우스 -> 추가 -> 새항목추가
[LoadXamlWindow.cs] – 코딩해보세요
n 실행화면
n XamlWindow.xml 파일은 Stand Alone xaml 파일과 유사한데 가장 큰 차이는 Button 객체에 Name 속성을 포함시킨 것으로 이 속성은 FrameworkElement에 의해 정의된 것이다.
n LoadXamlWindow.cs 파일의 생성자에서 XML 리소스를 위한 Uri 객체를 생성하고 StreamResourceInfo 객체를 반환하기 위한 Application.GetResourceStream 정적프로퍼티를 사용한다. StreamResourceInfo는 리소스를 위한 스트림을 반환하는 Stream 프로퍼티가 있으며 이 스트림 객체가 XamlReader.Load 메소드의 인자로 들어가고 반환되는 객체를 Window의 Content 프로퍼티에 할당한다.
n 일단 Xaml로부터 변환되어 Window의 비주얼 트리의 일부가 되면 FindName 메소드로 이름을 통해 엘리먼트를 찾는 것이 가능하고 이벤트 등을 달 수 있다.
n 버튼에 이벤트를 달기 위한 다른 방법으로 XamlReader.Load의 반환값을 Window 객체로 받은 후 버튼 클릭 이벤트 핸들러를 비주얼 트리속에서 찾아 연결하지 않고 Window의 AddHandler를 이용하여 버튼의 클릭 이벤트 핸들러 메소드를 정의했다.
n Application의 Run을 호출시 인자로 Window 객체를 전달해서 윈도우 실행
댓글 없음:
댓글 쓰기