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

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

Programování v jazyku C# II. 10.kapitola. Obsah Přehled WPF Architektura aplikace Layout aplikace Ovládací prvky 2/30.

Podobné prezentace


Prezentace na téma: "Programování v jazyku C# II. 10.kapitola. Obsah Přehled WPF Architektura aplikace Layout aplikace Ovládací prvky 2/30."— Transkript prezentace:

1 Programování v jazyku C# II. 10.kapitola

2 Obsah Přehled WPF Architektura aplikace Layout aplikace Ovládací prvky 2/30

3 Proč se uživatelská přívětivost nestala součástí software? Je to těžké! Animace 2D 3D Dokumenty Ovládací prvky se styly Video Windows Forms MFC Win32 HTML DirectX Data Binding 3/30

4 Potřeba lépe organizovat informace Výzvy –Hardwarová inovace přestihuje software Displeje s vysokým DPI Široké obrazovky s možností rotace (TabletPC) GPU roste 3x rychleji než Moorův zákon –Přetížení informacemi Dokumenty, hudba, video, fotografie, atd. Potřeba lépe a chytřeji visualizovat informace 4/30

5 Jednotný přístup k UI, dokumentům a médiím Aplikační model –Deklarativní programování - XAML –Jednoduchá integrace médií –Data binding –Bohaté možnosti stylů a témat –Hostování uvnitř prohlížeče Grafický model –2D & 3D grafika, rastrová grafika –Text –Video a audio –Animace Model dokumentů –Pevné, plovoucí a adaptivní rozložení –Pokročilá typografie –Řízení práv Media Integration Layer Media Integration Layer Element Services Aplikační model Model dokumentů Grafický model Composition and Rendering.NET Framework DirectX WPF Nástroje a jazyky 5/30

6 WPF komponenty 2D 3D AudioImaging Text Video Effects Composition Engine Animation XAML Accessibility Property System Input & Eventing Document Services Packaging Services Application Services Deployment Services Controls Layout Databinding User Interface Services Media Integration Layer Base Services XPS Documents 6/30

7 Deklarativní tvorba aplikací WPF přináší model postavený na oddělení grafického návrhu aplikace a aplikační logiky –Model známý z ASP.NET –Návrh vzhledu pomocí jazyka XAML (eXtensible Application Markup Language) –XAML je převeden do zdrojového kódu a přeložen do binární formy Je postaven na existenci neúplných tříd (partial class) XAML nemusí sloužit pouze k definici grafického vzhledu, ale k definici –Aplikace jako celku –Systémových zdrojů atd. 7/30

8 Deklarativní programování Návrh uživatelského rozhraní –Standardním způsobem Button btn = new Button(); btn.Background = Colors.Red; btn.Content = "Tlačítko!"; this.Children.Add( btn ); –Deklarativně v jazyce XAML (eXtensible Application Markup Language) Tlačítko! 2/30

9 Kombinace XAML a kódu Typicky je v XAML definován vzhled, animace, vazba na datové zdroje, zachycení a zpracování některých událostí V „kódu v pozadí“ je realizována aplikační logika Tlačítko! partial class Window1 : Window { Button tlacitko; void InitializeComponent() { tlacitko = new Button(); tlacitko.Background = “Red"; tlacitko.Click += btn_click; this.AddChild(tlacitko); } }; XAML partial class Window1 : Window { public Window1() { InitializeComponent(); } public btn_click(object sender, RoutedEventArg e) { … } }; + Kód v pozadí 9/30

10 C#/VB.NET jmenný prostor, v němž je založen kód v pozadí Jmenný prostor XAML Jmenný prostor Windows Presentation Foundation Jmenné prostory v XAML kódu Kořenový element každého XAML dokumentu musí deklarovat používané jmenné prostory 10/30

11 Koukni také na stránku Page 2. Další stránka void nextPage_clicked(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("Window2.xaml", UriKind.Relative)); } Navigace v aplikaci WPF aplikace nabízí nový typ „explorer“ navigace –Automaticky jsou generována tlačítka Zpět a Vpřed –Logika a programová podpora zabudována do objektu aplikace (Application) 11/30

12 Typy aplikací Plné lokální aplikace –Instalovány na lokální počítač –Přístup k systémovým zdrojům definován právy uživatele (Full Trust) Web Browser aplikace –Běží v prostředí prohlížeče –Využívá typické Forward-Back stránkování –Omezení práv aplikace (Partial Trust) Aplikace nemůže požádat o dodatečná práva (běží nebo ne) Potřebná práva pro běh aplikace jsou definována v projektu aplikace (záložka Security – Zone & Permissions) 12/30

13 Srovnání typů aplikací VlastnostLokání aplikaceBrowser aplikace Běhové prostředíLokální OSIE 7 DůvěraPlnáOmezená DostupnostOnline/OfflineOnline NasazeníNejlépe ClickOnce nebo MSI Nejlépe ClickOnce 13/30

14 Instalace ClickOnce Přirozený vývoj „bezdotykové instalace“ z.NET 1.x –Založeno na HTTP protokolu pro.NET aplikace –exe stažen, uložen, spuštěn ClickOnce –Podporuje instalaci obou typů aplikací (plné i browser) –2 scénáře nasazení Online/offline Pouze online –Odstraňuje problémy předchozí verze; nyní umí Podpora v nástrojích (VS 2005, SDK) Sledování postupu instalace Distribuce jiných souborů než assembly (data, COM, nápověda) Možnost požádat o vyšší povolení –Je vyžadován digitální podpis instalace 14/30

15 Instalace \demo\demo_1_ 0_0_0 demo. exe.manifest Aplikační manifest demo. exe.deploy *.*.deploy \demo\demo_1_ 0_0_0 Aplikační soubory \demo demo_1_0_0_0.application demo.application Manifest nasazení publish.htm setup.exe *.application - manifest nasazení, XML popis nasazení a update aplikace publish.htm – web stránka ClickOnce nasazení setup.exe -.NET FX 2.0 bootstrap + další potřebné aplikaci potřebné pro běh aplikace (např. SQL Server Express), konfigurovatelné ve VS 2005 *.exe.manifest – aplikační manifest, XML popis požadované úrovně bezpečnosti, asociace souborů k dané verze *.*.deploy – soubory učené k nasazení, rozšířeny o přípomu.deploy z důvodu ochrany web serveru 15/30

16 Srovnání nasazení aplikací Vlastnost Online/ offline Online ClickOnce nasazení  Opravena novou verzí  Zástupce ve Start menu  Položka v Add/Remove programs  Výzva k instalaci nové verze  Roll-back na předchozí verzi  16/30

17 Layout Canvas StackPanel DockPanel WrapPanel Grid Bez logiky layoutu – rozmístí prvky přesně podle souřadnic, plná kontrola Umístí prvky horizontálně nebo vertikálněAlokuje celou boční stranu jednomu prvku Umístí prvky horizontálně s možností „přepadnutí“ do dalšího řádku Organizace ve formě libovolné tabulky, nejpružnější řešení 17/30

18 Text Layout TextBlock – nejjednodušší element –Jednoduché formátování (font, styly, zarovnání) TextFlow – rozšiřuje layout možnosti TextBlock –Odstavec –Seznam –Tabulka –Floater –Popis 18/30

19 Vlastní typ layoutu Existující layouty lze rozšířit o vlastní Proces vykreslení probíhá ve dvou fázích – měření a rozvržení public class DiagonalPanel : Panel { protected override Size MeasureOverride(Size dostupnaVelikost) { } Protected override Size ArrangeOverride(Size konecnaVelikost) {} } 19/30

20 Ovládací prvky Všechny standardní prvky jsou dostupné a některé nové Třídy jsou společné pro WPF –System.Windows.Controls, ne System.Windows.Forms.Controls Vzhled plně oddělen od funkcionality a modifikovatelný prostřednictvím šablon –Nevytvářet nové prvky, využít exitující logiku a definovat nový vzhled 20/30

21 Jak ovládací prvky fungují Prvky obsahují –Commands – operace jako jsou Cut, Copy nebo Paste –Properties – vlastnosti modifikující vzhled nebo chování –Events – ovládací prvky vyvolávají události –Metody – část funkcionality je dostupná formou metod Commands, Properties a Events dostupné v XAML Aplikační logika Data binding – vazba na datové zdroje Template – šablona definující vzhled prvku 21/30

22 Události WPF rozšiřuje standardní mechanismus.NET events Routed events –Události jsou zpracovány v elementu samotném, ale i ve všech „nadřazených“ elementech (v tzv. logickém stromu) Události mohou –Probublat – událost prochází od původce směrem nahoru ve stromu –být Tunelovány – události začínají u kořene a sestupují směrem dolů k původci –být Směrovány - zpracovává pouze původce události 22/30

23 Události pokr. WPF definuje většinu routed events v párech bublající- tunelovaný –Tunelovaný začíná prefixem „Preview“ –Tunelovaný proběhne jako první, hned za ním Bublající –Bublání/tunelování lze zastavit private void btn_click (object sender, RoutedEventArg e) { e.Handled = true; } Některé události jsou pouze Směrovány, jiné pouze Probublány (příklady) –B: GotMouseCapture, LostMouseCapture, … –S: MouseEnter, MouseLeave –T/B: PreviewMouseMove, MouseMove 23/30

24 Příkazy (Commands) Vznikají např. příkazy z menu nebo klávesovými zkratkami WPF využívá stejnou myšlenku jako u událostí – Routed Commands –WPF definuje třídu RoutedCommand –Instance asociována s každou položkou menu a toolbar tl. –Po vyvolání je spuštěna dvojice událostí PreviewExecuteEvent a ExecuteEvent Jsou tunelovány a probublány jako události vstupu Cílem události je ten prvek, který má aktuálně fokus 24/30

25 Standardní příkazy a zpracování Standardní příkazy jsou rozděleny do několika tříd Mapování příkazu na metodu zpracování –Třída CommandBinding propojí příkaz a metody –Kolekce CommandBindings obsahuje tato propojení –CommandBindings má každý grafický element (UIElement) Množinu existujících příkazů lze lehce rozšířit TřídaObsah ApplicationCommandsSpolečné všem aplikacím (undo, open, close, print) ComponentCommandsPohyb po informacích (scrool, moveToEnd, selekce) EditCommandsPráce s textem (bold, italic, zarovnání) MediaCommandsMédia operace, zvuk, stopy (play, pause) 25/30

26 Příklad zpracování příkazu public partial class Window1 : Window { public Window1 () { InitializeComponent(); CommandBinding cb = new CommandBinding(ApplicationCommands.New); cb.Execute += ZpracujNew; CommandBindings.Add(cb); } private void ZpracujNew(object sender, ExecuteEventArgs e) { … } } 26/30

27 Vyvolání příkazu Standardních prvky UI (menu, toolbar) Tzv. vstupní gesta –MouseGesture – vyvolaná myší nebo stylusem –KeyGesture – klávesové zkratky Přímo z kódu aplikace ApplicationCommands.New.Execute(cilovyElement); Spojením s elementem UI Kopírovat 27/30

28 Závěrem WPF nabízí nový model popisu uživatelského rozhraní –Odráží potřeby profesionálního přístupu Možnost běhu aplikací v prohlížeči zvyšuje bezpečnost a údržbu Nová generace nasazení aplikací – ClickOnce Pružný layout aplikace Přepracované ovládací prvky s plným přizpůsobením vzhledu Rozšířený systém řízení a zpracování událostí a zpráv 28/30

29 Odkazy MSDN Windows Vista Developer Center Microsoft.NET Framework Download platformy a ovládacích prvků efault.aspx efault.aspx Doporučení pro Windows Vista UX 29/30

30 30/30 Konec


Stáhnout ppt "Programování v jazyku C# II. 10.kapitola. Obsah Přehled WPF Architektura aplikace Layout aplikace Ovládací prvky 2/30."

Podobné prezentace


Reklamy Google