Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Windows Presentation Foundation
Jaroslav Klíma, MFF UK
2
Windows Presentation Foundation
Architektura Hello, WPF! Okna Navigace Umístění a okraje prvků Ovládací prvky Transformace Data binding Styly Animace Odkazy
3
.NET Framework 3.0 WPF je grafickým subsystémem .NET Frameworku 3.0
4
WPF: architektura PresentationFramework a PresentationCore napsané v managed kódu milcore v unmanaged kódu – kvůli výkonu
5
PresentationCore System.Threading.DispatcherObject
Základ pro většinu objektů Řeší běh více vláken současně Systém správ jako Win32 Messages “bubble” or “tunnel” System.Windows.DependencyObject Vlastnosti místo metod Notifikace o změně – INotifyPropertyChange Sdílené výchozí hodnoty vlastností Attached properties
6
System.Windows.Media.Visual
Jednoduché a rozšiřitelné, založené na callback metodách Spojení mezi managed kódem a milcorem vizuální elementy vs. composition nodes
7
System.Windows.Media.Visual
Používá algoritmus malíře namísto ořezávání Data-driven rendering: new Line() namísto DrawLine() Vytváření animací nastavením properties Strom je v cache – vykreslování se neblokuje na callback metodách
8
System.Windows.UIElement
Subsystémy Layout, Input a Events Layout: Measure & Arrange Input: driver (kernel) -> user32 -> WPF -> Dispatcher Preview event a samotný event Systém příkazů: Input gestures & command definitions
9
PresentationFramework
System.Windows.FrameworkElement Nadstavba subsystémů nižších vrstev a několik nových subsystémů Layout aplikace vlastnosti jako MinWidth, Margin... Brána k nižším vrstvám, např. StoryBoard Data binding podobně jako v ASP.NET můžeme bindovat vlastnosti, transformace i seznamy Data templates, styling (explicitní a implicitní)
10
System.Windows.Controls.Control
Šablony – ControlTemplate Control základní vlastnosti (Background, Padding..) data model – vlastnosti ovlivňující model interakce nebo model zobrazení podle konkrétních dat interaction model – příkazy a jejich vazby na gesta Object Control.Content
11
Hello, WPF! Třída Application Markup a code-behind
Singleton – Application.Current Startup, StartupUri MainWindow DispatcherUnhandledException ShutdownMode
13
Windows Vytvoření Životní cyklus Vztahy Pozice – startup a z-order
Velikost MinWidth, Width, MaxWidth, SizeToContent ShownInTaskbar, WindowState
14
WindowStyle Neorámované okno
Single border, 3D border, Tool window, None Neorámované okno WindowStyle = None; AllowsTransparency = "True" Background = “Transparent”
15
Dialog boxes Modal / modeless Common: Open file, Save file, Print
Vlastní dialogová okna Validace
16
Navigace Page WindowTitle, WindowHeight Odkazy - hyperlinks
Fragment navigation – odkazy do jiné části stránky URI#name Sub-content navigation pomocí Frame Atribut JournalOwnership
17
Pseudo-strukturovaná navigace
Navigation service Pseudo-strukturovaná navigace Pomocí konstruktoru a application-scope vlastností Strukturovaná navigace Pomocí PageFunction
18
Umístění a okraje prvků
Podobně jako ve WinForms HorizontalAlignment, VerticalAlignment Left, Right (Top, Bottom), Center, Stretch Margin, Padding Panely ovládacích prvků Canvas, DockPanel, Grid, StackPanel, WrapPanel
19
Ovládací prvky Tlačítka Menu Seznamy Range controls Navigační prvky
Button, RadioButton, RepeatButton Menu ContextMenu, Menu, Toolbar Seznamy ComboBox, ListBox, TreeView Range controls CheckBox, Slider Navigační prvky Frame, ScrollBar, ScrollViewer, TabControl, Thumb
20
Dialogová okna Informační prvky Dokumenty Editace textu Media Layout
PasswordBox, Print dialog Informační prvky Expander, Label, Popup, ProgressBar, StatusBar, ToolTip Dokumenty DocumentViewer, FlowDocumentPageViewer, FlowDocumentReader, FlowDocumentScrollViewer Editace textu Textbox, RichTextBox Media Image, MediaElement Layout Border, BulletDecor, Canvas, DockPanel, GridSplitter, GroupBox, Panel, Separator, StackPanel, WrapPanel, ViewBox
21
Transformace RenderTransform TransformGroup TranslateTransform
RotateTransform ScaleTransform SkewTransform TransformGroup
22
Data binding Dependency properties – „závislé vlastnosti“? DataContext
„Dependency properties are like normal .NET properties on steroids.“ DataContext Binding Source/ElementName, Path, Converter
23
Styly Implicitní styly Themes vs. Styles <Window.Resources>
<Style x:Key="redBar" TargetType="{x:Type ScrollBar}"> <Setter Property="Background" Value="red" /> </Style> </Window.Resources> <ScrollBar Style="{StaticResource redBar}">… Implicitní styly
24
Animace <Rectangle ...> <Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="MyRectangle" Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:5" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Rectangle.Triggers> </Rectangle>
25
Typy animací Zvláštní třída pro každý typ <Type>Animation
<Type>AnimationUsingKeyFrames <Type>AnimationUsingPath - Pro vlastní animace: <Type>AnimationBase
26
Příště Globalizace a lokalizace 2D a 3D grafika Accessibility
Šablony dat Typy zdrojů
27
Další zdroje http://msdn2.microsoft.com/en-us/library/ms754130.aspx
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.