Programov n v jazyku c ii
This presentation is the property of its rightful owner.
Sponsored Links
1 / 30

Programování v jazyku C # II. PowerPoint PPT Presentation


  • 55 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Programov n v jazyku c ii

Programování v jazyku C# II.

10.kapitola


Obsah

Přehled WPF

Architektura aplikace

Layout aplikace

Ovládací prvky

Obsah

2/30


Pro se u ivatelsk p v tivost nestala sou st software

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


Pot eba l pe organizovat informace

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


Jednotn p stup k ui dokument m a m di m

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


Wpf komponenty

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


Deklarativn tvorba aplikac

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


Deklarativn programov n

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


Kombinace xaml a k du

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


Jmenn prostory v xaml k du

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


Navigace v aplikaci

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


Typy aplikac

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


Srovn n typ aplikac

Srovnání typů aplikací

13/30


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

Instalace ClickOnce

14/30


Instalace

\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


Srovn n nasazen aplikac

Srovnání nasazení aplikací

16/30


Layout

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


Text layout

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


Vlastn typ layoutu

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


Ovl dac prvky

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


Jak ovl dac prvky funguj

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


Ud losti

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


Ud losti pokr

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


P kazy commands

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


Standardn p kazy a zpracov n

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


P klad zpracov n p kazu

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


Vyvol n p kazu

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


Z v rem

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


Odkazy

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


Programov n v jazyku c ii

Konec

30/30


  • Login