Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Windows Presentation Foundation Přehled technologií, díl III. Dalibor Kačmář Academic Developer Evangelist Microsoft s.r.o.

Podobné prezentace


Prezentace na téma: "Windows Presentation Foundation Přehled technologií, díl III. Dalibor Kačmář Academic Developer Evangelist Microsoft s.r.o."— Transkript prezentace:

1 Windows Presentation Foundation Přehled technologií, díl III. Dalibor Kačmář Academic Developer Evangelist Microsoft s.r.o.

2 Agenda WPF díl I. WPF díl I. Přehled WPF Architektura aplikace Úvod do XAML Layout aplikace Ovládací prvky WPF díl II. WPF díl II. Data binding Styly, šablony WPF díl III. WPF díl III. Novinky v grafice 2D grafika Resources 3D grafika Animace

3 Novinky v grafice Silná podpora grafiky ve WPF Je plně integrována do programového modelu Může být součástí libovolné části UI Grafické tvary jsou uspořádány do stromu elementů uživatelského rozhranní Odpadá nutnost neustále překreslovat okna Složitě manipulovat s vykreslenou grafikou WPF se za nás postará o překreslování Všechny elementy jsou vektorové, nikoli bitové mapy, tedy nezávislé na rozlišení!

4 Společné novinky v grafice Grafika nezávislá na rozlišení a zařízení Postavena na Device Independent Pixel Vylepšená přesnost Souřadnicový systém WPF a transformace používají double místo float typu WPF poskytuje širší barevný gamut (scRGB) Pokročilá podpora grafiky a animací Hit testování, minimální překreslování, integrace animace Hardwarová akcelerace

5 WPF grafické API Grafické objekty Pera a štětce Tvary (Shapes) - 2D primitivy Geometrické entity (Geometries) Zobrazení (Drawings)– Geometické entity, bitové mapy, texty, skupiny Transformace a animace Visuály (Visuals) – základní stavební elementy WPF vykreslovacího subsystému 3D Grafické objekty 3D primitivy, transformace a animace

6 Agenda Novinky v grafice 2D grafika 3D grafika Animace

7 2D tvary Elementy UI stromu Stejné jako jiné ovládací prvky a elementy Mohou mít k sobě připojeny události, např. klik myši Rectangle Ellipse Polyline Polygon Path

8 Příklady použití Canvas.Left="28" Canvas.Top="28" /> Canvas.Left="62" Canvas.Top="28" /> Data="M 30,60 Q 50,90 70,60" /> Tvary jsou přístupné z kódu v pozadí Změna vlastnosti se automaticky projeví na obrazovce //...kód v pozadí hlava.Width = 200;

9 Transformace Jakýkoli element lze transformovat Transformace nedeformuje kvalitu TransformacePředdefinované rotace, zvětšení, zkosení, posuv a obecná maticová 3D ekvivalenty Vliv na umístění tvaru LayoutTransform Prvek je nejdříve transformován a pak aplikován layout RenderTransform Layout neví o transformaci

10 Hit Testing Definován pro všechny kreslící elementy Bere transformace v úvahu Využívá směrování událostí (bublání)

11 Kompozice Proces složení více tvarů nebo obrázků ve výsledný výstup WPF na rozdíl od Win32 podporuje překrývání libovolných elementů (ne pouze celých oken) průhlednost používá anti-aliasing na hranách tvarů aplikaci transformace před kompozicí

12 Možnosti kompozice DrawingBrush Výplň vektorovým obrázkem VisualBrush Výplň UI elementem Zjednodušuje některé triky Reflexe UI Použití jako 3D textury

13 Barvy A (alfa), R, G, B kanály 32 bitů na barvu (8 na kanál) není dostatečné pro technologie jako film, velké panely s kvalitním podáním barev WPF 16b na kanál Zadáváno v plovoucí řádové čárce Zadáváno v plovoucí řádové čárce (dostupná 8b reprezentace celým číslem)

14 Obrázky a video Podpora bitových obrázků a videa ImageMediaElement Integrace obrázků a videa do štětce Vyplnění tvarů Použití jako textura 3D povrchu Velmi silná podpora v kódu System.Windows.Media.Imaging

15 Visual-Layer programování Existují případy, kdy deklarativní popis ve stromu není vhodný WPF poskytuje „visual-layer“ API Vykreslování entit podle potřeby Metoda OnRender vykreslí jednotlivé entity Odlišný zůstává model překreslování Aplikace GDI+ nebo GDI32 Grafická karta Frame buffer obrazovky Windows WM_PAINT Invalidate WPF Aplikace Vizuální objekty

16 Deklarativní a programový přístup ke 2D grafice

17 Agenda Novinky v grafice 2D grafika 3D grafika Animace

18 Přináší 3D širší audienci vývojářů Integrace – můžeme použít 3D kdekoli ve UI Lze použít štětce pro kreslení na 3D plochách

19 Grid 3D ve 2D světě Layout rozumí pouze 2D Použijeme obdélníkové okno do 3D světa DockPanel StackPanel TextBlock

20 Viewport3D Obsahuje a vykresluje pohled na živé 3D Layout to vidí jako další element Obsahujemodelkamerusvětlo Viewport3D FrameworkElement

21 Nastavení kamery PerspectiveCamera OrthographicCamera Pozice kamery Kam ukazuje Definice směru „nahoru“ Pole pohledu (širokoúhlá/telefoto)

22 Světlo AmbientLightDirectionalLightPointLightSpotLight

23 Model Obsah pohledu (Viewport3D) modelován pomocí ModelVisual3D Obsahuje strom Model3D-odvozených objektů Model3DGroup, Light, GeometryModel3D, ScreenSpaceLines3D Modelování těles MeshGeometry3D Jednoduchá tělesa neexistují Světlo počítáno po vrcholech

24 Materiály – 3D štětce Definují barvu nebo texturu povrchu Štětec (SolidColorBrush nebo DrawingBrush) GeometryModel3D = geometrie + materiál Materiál určuje model odrazivosti: DiffuseMaterial – matový povrch SpecularMaterial – odrazivý povrch EmissiveMaterial – aditivní míchání povrchu a textury (visuální efekty) Materiály lze kombinovat - MaterialGroup Např. DiffuseMaterial pro fotografii + SpecularMaterial pro odrazivý povrch

25 Vytvoření 3D scény, použití světla, kamery a definice povrchu elementů

26 Agenda Novinky v grafice 2D grafika 3D grafika Animace

27 Animace Proč? Silnější dojem z aplikací Vytváří přirozenější UI Plynulejší visuální přechody Animace kdekoli Jakoukoli vlastnost lze animovat Kdekoli ≠ všude Zvážit vhodnost Zdrženlivost je na místě Realizace animací deklarativně i kódem

28 Deklarativní animace Popisují animačnímu systému průběh Např. změň šířku (Width) z 10 na 100 během 10 sekund Zbytek proveden automaticky Bez nutnosti nastavit časovače Bez nutnosti vlastního vykreslování Storyboard.TargetProperty="(Ellipse.Width)" /> Parametry animace Typ animace Cíl animace Animovaná vlastnost

29 Elementy animací Storyboad Koordinuje běh několika animací Trigger Spouští animaci událostí nebo hodnotou vlastnosti Timeline Definuje časový rozsah animace Organizovány hierarchicky a paralelně Animation Specifické pro animovanou vlastnost 24 typů animací Např. Color/Point/Single/Double/Rect3DAnimation

30 Jednoduchá animace pomocí XAML

31 Časování animací Relativní vs absolutní From-To, To, By, From-By Aktivace více animací najednou kompozicí (i na jedné vlastnosti) Zrychlení/zpomalení vyvolává přirozený vzhled Není-li určeno, rychlost je lineární

32 Ukončení animace Po ukončení se objekt vrátí do původního stavu Opakování Forever, fixní doba, počet opakování Reverzní chod Vnořená animace může doběhnout dříve než rodič FillBehavior určuje, co se stane

33 „Key Frame“ animace Profesionální animace definovány sérií klíčových pozic objektů Místo série animací, definuje tyto pozice Pro hladší průběh lze použít spline funkce

34 Key Frame animace

35 Shrnutí Grafika dostupná deklarativně i programově Nezávislá na rozlišení Vyšší přesnost a kvalita Snaha využít výkonný hardware WPF nabízí jednoduchý model 3D Snadněji než s DirectX, ale s nižším výkonem Nejdříve si udělejte prototyp Animace výrazně obohacují UI Snadná deklarace a aktivace bez kódu Jakákoli vlastnost může být animována jak ve 2D, tak 3D

36 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.


Stáhnout ppt "Windows Presentation Foundation Přehled technologií, díl III. Dalibor Kačmář Academic Developer Evangelist Microsoft s.r.o."

Podobné prezentace


Reklamy Google