180 likes | 303 Views
Windows Presentation Foundation. Moderne GUI og Silverlight. WPF Overview. Traditional GDI ( 25 years), GDI+, WinForms DirectX ( 16 years), Direct3D Quartz, DirectShow (14 years) Problems Showing their age Each API is different Mixing APIs is challenging. WPF Overview.
E N D
Windows Presentation Foundation Moderne GUI og Silverlight
WPF Overview Traditional • GDI (25 years), GDI+, WinForms • DirectX (16 years), Direct3D • Quartz, DirectShow (14 years) • Problems • Showing their age • Each API is different • Mixing APIs is challenging
WPF Overview Next Generation • WPF – replaces GDI/WinForms • Direct3D – large games, used by WPF • Media Foundation – ultimately will replace DirectShow • MCML – markup language for Media Center Edition applications • XNA – small games
WPF Overview • Compositing • UI, Documents, Media, 3D, Browser, … • Declarative programming with XAML markup • For Designers and Developers • Rewritten from scratch • Built on top of Direct3D • Hardware accelerated • Vector based • Resolution independent • Retained graphics
WPF Vision • Integrated, vector-based composition engine • Utilizing the power of the PC throughout the graphics stack • Unified approach to UI, Documents, and Media • Integration as part of development and experience • Declarative programming • Bringing designers directly into application development • Ease of deployment • Allowing administrators to deploy and manage applications securely
XAML • XML for Applications Markup Language <Button Name="button1"> Click Me! </Button> Button button1 = new Button(); button1.Content = "Click Me!";
XAML: Properties • As attributes or elements <Button Content="Click Me!" Background="LightGreen" /> <Button> <Button.Background> LightGreen </Button.Background> Click Me! </Button>
XAML: Attached Properties <Canvas> <Button Canvas.Top="30" Canvas.Left="40"> Click Me! </Button> </Canvas>
WPF Layout and Controls • Class hierarchy
Layout Controls • StackPanel • WrapPanel • Canvas • DockPanel • Grid • ...
Simple Controls • PasswordBox • ScrollBar • ProgressBar • Slider • TextBox • RichTextBox • ...
Content Controls • Button • RepeatButton • ToggleButton • CheckBox • RadioButton • Label • Frame • ListBoxItem • StatusBarItem • ScollBarViewer • ToolTip • UserControl • Window • NavigationWindow • ...
Headered Content Controls • Expander • GroupBoxItem • TabItem • ...
Items Controls • Menu • ContextMenu • StatusBar • TreeView • ListBox • ComboBox • TabControl • ...
LooklessControls • Control implies behaviour • Probably supplies default look • Designer free to supply new look
Designer Developer Developer or Designer?