1 / 27

Windows Presentation Foundation

Windows Presentation Foundation. Jaroslav K líma, MFF UK 17.5.2007. Windows Presentation Foundation. Architektura Hello, WPF ! Okna Navigace Umístění a okraje prvků Ovl ádací prvky Transformace Data binding Styly Animace Odkazy. .NET Framework 3.0.

darryl
Download Presentation

Windows Presentation Foundation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows Presentation Foundation Jaroslav Klíma, MFF UK 17.5.2007

  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

  12. Windows • Vytvoření • Životní cyklus • Vztahy • Pozice – startup a z-order • Velikost MinWidth, Width, MaxWidth, SizeToContent • ShownInTaskbar, WindowState

  13. WindowStyle • Single border, 3D border, Tool window, None • Neorámované okno • WindowStyle = None; AllowsTransparency="True" Background = “Transparent”

  14. Dialog boxes • Modal / modeless • Common: Open file, Save file, Print • Vlastní dialogová okna • Validace

  15. Navigace • Page • WindowTitle, WindowHeight • Odkazy - hyperlinks • Fragment navigation – odkazy do jiné části stránky URI#name • Sub-content navigation pomocí Frame • Atribut JournalOwnership

  16. Navigation service • Pseudo-strukturovaná navigace • Pomocí konstruktoru a application-scope vlastností • Strukturovaná navigace • Pomocí PageFunction

  17. 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

  18. Ovládací prvky • Tlačítka • Button, RadioButton, RepeatButton • Menu • ContextMenu, Menu, Toolbar • Seznamy • ComboBox, ListBox, TreeView • Range controls • CheckBox, Slider • Navigační prvky • Frame, ScrollBar, ScrollViewer, TabControl, Thumb

  19. Dialogová okna • 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

  20. Transformace • RenderTransform • TranslateTransform • RotateTransform • ScaleTransform • SkewTransform • TransformGroup

  21. Data binding • Dependency properties – „závislé vlastnosti“? • „Dependency properties are like normal .NET properties on steroids.“ • DataContext • Binding • Source/ElementName, Path, Converter

  22. 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

  23. 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>

  24. Typy animací • Zvláštní třída pro každý typ • <Type>Animation <Type>AnimationUsingKeyFrames <Type>AnimationUsingPath - Pro vlastní animace: <Type>AnimationBase

  25. Příště • Globalizace a lokalizace • 2D a 3D grafika • Accessibility • Šablony dat • Typy zdrojů

  26. Další zdroje • http://msdn2.microsoft.com/en-us/library/ms754130.aspx • http://wpf.netfx3.com/ • http://www.codeproject.com/WPF/

More Related