XAML 신비를 벗다 발표자 : 최우진 [email protected] [email protected] ▶ XAML의 필요성 ▶ XAML의 정의 ▶ 엘리먼트와 어트리뷰트 ▶ 네임스페이스 ▶ 프로퍼티 엘리먼트 ▶ 타입컨버터 ▶ 마크업 확장식 ▶ 오브젝트 엘리먼트의 자식요소들 ▶ XAML과 프로그래밍 코드를 함께 고고싱 ▶ 정리 ▶Q&A XAML의 필요성 사용자 인터페이스 혹은 객체 간의 계층구조를 간결하 게 표현하는데 적합 디자인과 개발을 분리할 수 있기 때문에 유지보수 측 면에서 상당히 유용 윈도우 SDK에 포함되어 있는 XamlPad 같은 프로그램 으로 컴파일하지 않고도 결과를 즉시 확인할 수 있다. WPF로 작성된 대부분의 프로그램에서 사용된다. XAML의 정의 닷넷의 객체들을 초기화하거나 생성하기에 적합하도 록 설계된 간편하고 범용적인 선언형 프로그래밍 언어 닷넷 프레임워크 3.0은 컴파일러와 XAML 실행 파서, 익스플로러 내에서 WPF기반 XAML파일을 독립적으 로 실행시킬 수 있는 플러그인 포함 엘리먼트와 어트리뷰트 XAML: <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Content="OK" Click="button_Click"/> Content="OK"/> C#: C#: System.Windows.Controls.Button System.Windows.Controls.Button b b= = new new System.Windows.Controls.Button(); System.Windows.Controls.Button(); b.Click += new System.Windows.RoutedEventHandler(button_Click); b.Content = "OK"; b.Content = "OK"; 네임스페이스 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation " xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" <WpfNamespace:Button xmlns:WpfNamespace= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" Content="OK"/> 프로퍼티 엘리먼트 System.Windows.Controls.Button b = new System.Windows.Controls.Button(); <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> System.Windows.Shapes.Rectangle r = new System.Windows.Shapes.Rectangle(); <Button.Content> r.Width = 40;Height="40" Width="40" Fill="Black"/> <Rectangle r.Height = 40; </Button.Content> r.Fill = System.Windows.Media.Brushes.Black; </Button> b.Content = r; // Make the square the content of the Button 프로퍼티 엘리먼트 <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Content="OK" Background="White"/> <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <Button.Content> OK </Button.Content> <Button.Background> White </Button.Background> </Button> 타입컨버터 System.Windows.Controls.Button b = new System.Windows. b.Content = "OK"; b.Background = System.Windows.Media.Brushes.White; <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation” Content="OK"> <Button.Background> <SolidColorBrush Color="White"/> </Button.Background> </Button> <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation” Content="OK"> <Button.Background> <SolidColorBrush> <SolidColorBrush.Color> <Color A="255" R="255" G="255" B="255"/> </SolidColorBrush.Color> </SolidColorBrush> </Button.Background> </Button> 마크업 확장식 없음 오브젝트 엘리먼트의 자식요소들 컨텐트 프로퍼티 컬렉션 아이템 ▷리스트 ▷딕셔너리 더 다양한 형변환 XAML과 프로그래밍 코드를 함께 고고 싱 런타임 시에 XAML을 로드하고 파싱하기 ▷ XamlReader ▷ XAML 엘리먼트에 이름 사용하기 XAML 컴파일하기 XAML의 키워드 공부하세요 ^^;; Q&A Quiz 같은 크기의 버튼 모양 XAML 파일을 만들었을때 Button으로 작업을 한 것과 Rectangle로 작업을 한 것은 마우스 이벤트 효과에서 어떤 차이가 있을까요? Ex) Button1.XXXXXX (O) Button2.XXXXXX (O) Button1.YYYYYY (O) Button2.YYYYYY (X)