1 / 30

Programování v jazyku C # II.

Programování v jazyku C # II. 10.kapitola. Přehled WPF Architektura aplikace Layout aplikace Ovládací prvky. Obsah. 2/30. Proč se uživatelská přívětivost nestala součástí software ?. Je to těžké !. Win32. Animace. Dokumenty. DirectX. 3D. 2D. MFC. Data Binding.

moesha
Télécharger la présentation

Programování v jazyku C # II.

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. Programování v jazyku C# II. 10.kapitola

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

  3. Proč se uživatelská přívětivost nestala součástí software? Je to těžké! Win32 Animace Dokumenty DirectX 3D 2D MFC Data Binding Ovládací prvky se styly Windows Forms Video HTML 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 3xrychleji 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. WPF Aplikační model Grafický model Model dokumentů Nástroje a jazyky Element Services Media Integration Layer Composition and Rendering DirectX .NET Framework 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 5/30

  6. WPF komponenty User Interface Services Document Services XPS Documents Application Services Controls Databinding Layout Deployment Services Packaging Services Media Integration Layer Base Services Imaging 2D Audio XAML Text Effects 3D Video Accessibility Animation Input & Eventing Composition Engine Property System 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) <Button Background="Red">Tlačítko!</Button> 2/30

  9. Kód v pozadí partial class Window1 : Window { Button tlacitko; void InitializeComponent() { tlacitko = new Button(); tlacitko.Background = “Red"; tlacitko.Click += btn_click; this.AddChild(tlacitko); }}; partial class Window1 : Window { public Window1() { InitializeComponent(); } public btn_click(object sender, RoutedEventArg e) { … }}; + 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 <Button x:Name="tlacitko"Background="Red" Click="btn_click"> Tlačítko! </Button> XAML 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 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MojePrvniWPFAplikace.Window1"> <Button … /> </Window> 10/30

  11. Navigace v aplikaci • WPF aplikace nabízí nový typ „explorer“ navigace • Automaticky jsou generovánatlačítka Zpět a Vpřed • Logika a programová podporazabudována do objektu aplikace (Application) <TextBlock> Koukni také na stránku <Hyperlink NavigateUri="Window2.xaml">Page 2</Hyperlink>. </TextBlock> <Button Click="nextPage_clicked"> Další stránka</Button> void nextPage_clicked(object sender, RoutedEventArgs e){ NavigationService.Navigate(new Uri("Window2.xaml", UriKind.Relative)); } 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í 13/30

  14. 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 Instalace ClickOnce 14/30

  15. \demo\demo_1_0_0_0 \demo\demo_1_0_0_0 \demo demo_1_0_0_0.application demo.exe.manifest demo.exe.deploy demo.application *.*.deploy publish.htm Aplikačnímanifest Aplikačnísoubory setup.exe Manifest nasazení Instalace *.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 *.*.deploy– soubory učené k nasazení, rozšířeny o přípomu .deploy z důvodu ochrany web serveru *.exe.manifest – aplikační manifest, XML popis požadované úrovně bezpečnosti,asociace souborů k dané verze 15/30

  16. Srovnání nasazení aplikací 16/30

  17. Layout • Canvas • StackPanel • DockPanel • WrapPanel • Grid Umístí prvky horizontálně s možností „přepadnutí“ do dalšího řádku Organizace ve formě libovolné tabulky, nejpružnější řešení Umístí prvky horizontálně nebo vertikálně Alokuje celou boční stranu jednomu prvku Bez logiky layoutu – rozmístí prvky přesně podle souřadnic, plná kontrola 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 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 <Button Command="Copy">Kopírovat</Button> 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 http://msdn.microsoft.com/windowsvista Microsoft .NET Framework 3.0http://msdn.microsoft.com/winfx/ Download platformy a ovládacích prvkůhttp://msdn.microsoft.com/winfx/downloads/presentation/default.aspx Doporučení pro Windows Vista UX http://msdn.microsoft.com/windowsvista/experience 29/30

  30. Konec 30/30

More Related