29/09/20161 Dialogová okna (1) Dialogová okna mohou být ve WPF (podobně jako ve Windows Forms) implementována jako: –modální: zobrazení se provede voláním.

Slides:



Advertisements
Podobné prezentace
Prezentační manažer Kapitola 9.3 (Automatický chod - časování)
Advertisements

(instance konkrétní třídy)
© 2000 VEMA počítače a projektování spol. s r. o..
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Co je to uživatelské menu? Ve WinBase si můžeme ke každé aplikaci vytvořit vlastní menu, které po otevření nahradí standardní menu WinBase. Toto uživatelské.
Styly, záhlaví a zápatí, oddíly
Tabulky v MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
ÚVOD DO CPP 7 Dědičnost - pokračování
C# pro začátečníky Mgr. Jaromír Osčádal
Microsoft ® Lync ™ 2010 Školení k delegování. Cíle V tomto kurzu se dozvíte, jak provádět následující akce: Nastavení přístupu delegáta v aplikaci Outlook.
1IT S ÍŤOVÝ DATOVÝ MODEL Ing. Jiří Šilhán. S ÍŤOVÝ DATOVÝ MODEL Je historicky nejstarším datovým modelem. Jeho základem jsou vzájemně propojené množiny.
OS Windows. Tento operační systém byl vytvořen pro snazší ovládání počítače běžnými uživateli. Například stačí jednou definovat připojená zařízení (tiskárny…)
Objektové programování
08/04/20151 Delegáty (1) Delegát (delegate) je datový typ, který definuje signaturu metody Delegáty bývají rovněž označovány jako typo- vě bezpečné ukazatele.
Informatika pro ekonomy II přednáška 10
CSS styly Kaskádové styly (CSS – Cascading Style Sheets) jsou prostředkem, který zajišťuje jednotný vzhled publikovaných stránek. Technologii CSS podporují.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
RoBla Makra MS OFFICE.
PictureBox u vkládání obrázků u vlastnost Picture pomocí příkazu LoadPicture u přiřazení obrázku mezi dvěma prvky PictureBox Auto.Picture = AutoCerv.Picture.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
2 Ing. Jan Keprt Centrální správa uživatelů 3 Jak to bylo dosud Bylo třeba nastavení uživatelů provést zvlášť, v každém modulu samostatně. Uživatel si.
Dílna Caché II. CSP pro pokročilé Tomáš Vaverka. Zdroje HTML Tag Reference v sekci Reference Material v dokumentaci Caché HTML Tag Reference v sekci Reference.
Práce se šablonami v MS Word 2007
MS PowerPoint Prezentační manažer Kapitola 6.4 (Videosekvence)
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Martina Braunerová.  nejdůležitější program v počítači  umožňuje všem ostatním programům fungovat  prostředník mezi počítačem a uživatelem.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
POWER POINT 1 Základní pojmy Power Point - základní pojmy.
Databázové modelování
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Počítačová podpora konstruování I 7. přednáška František Borůvka.
Základní škola a mateřská škola Bzenec Číslo projektu: CZ.1.07/1.4.00/ Číslo a název šablony klíčové aktivity: III/2: využívání ICT – inovace Vypracoval/a:
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Akademie ZENU Ukázková aplikace. Tak o tomhle to nebude…
Vzdálená správa Tomáš Kalný.
Windows Presentation Foundation 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,
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Windows Presentation Foundation Resources. Resources Styly a všechny typy šablon bývají definovány jako resouces Opakované použití Čitelnost kódu Možnost.
Windows Presentation Foundation Data Binding
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
31/07/20151 Uživatelské rozhraní (13) Pro standardní akce používat standardní dia- logová okna: –otevření souboru – OpenFileDialog –uložení souboru – SaveFileDialog.
Menu Vytváření menu.
03/08/20151 XAML (1) XAML – Extensible Application Markup Language Poznámka: –XAML je vyslovován jako [zæməl] Deklarativní značkovací jazyk založený na.
Databáze MS ACCESS 2010.
Využití sestavy Zobrazení a typy Části sestavy Vytvoření sestavy Ovládací prvky.
WINDOWS Základní popis a údržba operačních systémů.
Delphi – práce se základními komponentami (2. hodina) OB21-OP-EL-KON-DOL-M-4-008B Orbis pictus 21. století.
23. – 25. dubna 2007 S4U – Seminář o Univerzitním informačním systému 1 Hotel Tatra, Velké Karlovice Portlety, navigace a personalizace UIS Milan Šorm.
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
NetBeans Plugin.  Echo2 web framework (Ajax, Java)  NetBeans IDE (modularita, Swing designer)  Vizuální design uživatelského rozhraní (WYSIWYG)  Drag.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
PRACOVNÍ PLOCHA Vasyl Lutsak.
Správce úloh = systémový nástroj Windows, pomocí kterého máte jednak možnost zobrazit spuštěné aplikace a procesory a ukončovat je -Dále jsou zde spuštěny.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
C# WPF.
Vlastnosti souborů Jaroslava Černá.
Dialogová okna (1) Realizována pomocí třídy Form
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
Informatika pro ekonomy přednáška 8
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Výukový materiál zpracován v rámci projektu
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Oblast platnosti identifikátoru (1)
Název školy: Střední odborná škola stavební Karlovy Vary
Dialogová okna (1) Dialogová okna mohou být ve WPF (podobně jako ve Windows Forms) implementována jako: modální: zobrazení se provede voláním metody ShowDialog.
Přizpůsobení webu Microsoft SharePointu Online
Transkript prezentace:

29/09/20161 Dialogová okna (1) Dialogová okna mohou být ve WPF (podobně jako ve Windows Forms) implementována jako: –modální: zobrazení se provede voláním metody ShowDialog metoda ShowDialog vrací hodnotu bool?, na zákla- dě které lze určit, jak bylo dialogové okno ukončeno vrácená hodnota metodou ShowDialog je dána nasta- vením vlastnosti DialogResult (typicky v obslužné metodě reagující na stisk tlačítka OK, resp. Storno) –nemodální: zobrazení se provede voláním metody Show

29/09/20162 Dialogová okna (2) Výměnu dat mezi dialogovým oknem a zbýva- jící částí aplikace lze realizovat pomocí: –veřejných vlastností definovaných ve třídě zapou- zdřující dané dialogové okno –datových vazeb (data binding) Tlačítko: –OK: by mělo mít nastavenu vlastnost IsDefault na hod- notu true, aby bylo možné dialog ukončit stiskem klávesy Enter stisk tlačítka OK automaticky neuzavírá dialog, je nutné provést volání metody Close

29/09/20163 Dialogová okna (3) –Strono: by mělo mít nastavenu vlastnost IsCancel na hod- notu true, aby bylo možné dialog ukončit stiskem klávesy Esc je-li IsCancel nastavena na true, pak při stisku tlačítka Storno dojde automaticky k uzavření dialogu Dialogové okno by: –nemělo být viditelné na liště spuštěných aplikací (taskbar)  vlastnost ShowInTaskbar nastavit na hodnotu false –většinou nemělo umožňovat zvětšování a zmen- šování  vlastnost ResizeMode nastavit na hodnotu NoResize

29/09/20164 Dialogová okna (4) –mělo mít nastaveného svého vlastníka (např. hlav- ní okno aplikace) pomocí vlastnosti Owner –většinou mělo být centrované vzhledem ke svému vlastníku  vlastnost WindowStartupLoca- tion nastavit na hodnotu CenterOwner –mělo mít vhodným způsobem nastavené vstupní zaměření (lze realizovat voláním metody Focus u příslušného ovládacího prvku)

29/09/20165 Stromy elementů (1) Stromy elementů (element trees) uspořádávají množiny elementů do hierarchické struktury WPF rozlišuje dva typy stromů elementů: –logický strom (logical tree) –vizuální strom (visual tree) Logický strom: –reprezentuje strukturu prvků uživatelského rozhra- ní definovaných v jazyce XAML nebo v kódu na pozadí –příklad (jako rozložení je použitý StackPanel):

29/09/ Stromy elementů (2) Window StackPanel ButtonListBox String

29/09/20167 Stromy elementů (3) Vizuální strom: –zahrnuje všechny elementy, které jsou ve finální fázi vykresleny na zobrazovacím zařízení –obsahuje všechny elementy logického stromu, kte- ré jsou odvozeny od tříd Visual a Visual3D –rozděluje jednotlivé elementy na menší části, které tvoří výsledný vzhled grafického prvku –využívá se například pro přizpůsobení vzhledu prvků (stylování) uživatelského rozhraní –ve Visual Studiu jej lze zobrazit pomocí okna Live Visual Tree

29/09/20168 Stromy elementů (4)

29/09/20169 Závislé vlastnosti (1) Závislé vlastnosti (dependency properties) představují rozšíření možností doposud použí- vaných CLR vlastností Umožňují např.: –dědičnost hodnot (property value inheritance): hodnota závislé vlastnosti může být zděděna od nadřa- zeného elementu (nejedná se o dědičnost ve smyslu OOP) např.: font použitý u tlačítka může být zděděn od hlav- ního okna (tlačítko převezme font, jenž je nastavený na úrovni hlavního okna)

29/09/ Závislé vlastnosti (2) –oznámení o změně hodnoty (change notification): lze definovat metodu, která se automaticky vyvolá v okamžiku, kdy dojde ke změně hodnoty vlastnosti dovoluje použití tzv. property triggers: –umožňují při změně hodnoty provést akci bez nutnosti psát procedurální kód –ověřovat platnost zapisované hodnoty (data valida- tion): dovoluje popsat metodu, která ověří platnost zapisované hodnoty –provést „vynucenou“ úpravu zapisované hodnoty (value coercion): zapisovaná hodnota může být automaticky modifiková- na (upravena) tak, aby byla konzistentní s hodnotami jiných vlastností

29/09/ Závislé vlastnosti (3) např.: –zabezpečení, že horní mez rolovací lišty nebude menší než její dolní mez –horní mez bude „vynuceně“ nastavena na hodnotu dolní meze –datové vazby (data binding): technika umožňující nastavit propojení mezi uživatel- ským rozhraním aplikace a její aplikační logikou –použití stylů: styly představují elementy definující vzhled ovládacího prvku –použití šablon: elementy popisující celkovou strukturu ovládacího prvku –použití animací: změny hodnoty ve specifikovaném časovém intervalu

29/09/ Závislé vlastnosti (4) Závislé vlastnosti nejsou součásti CLR, ale jsou implementovány až rozhraním WPF: –nemají v jazyce C# přímou syntaktickou podporu –každou závislou vlastnost je nutné v rámci WPF registrovat Třída, která chce definovat závislé vlastnosti musí být odvozena (přímo nebo nepřímo) od třídy DependecyObject Definice se provádí pomocí veřejné statické datové položky, která je: –určena pouze pro čtení (modifikátor readonly ) –typu DependencyProperty

29/09/ Závislé vlastnosti (5) Registrace závislé vlastnosti se provádí volá- ním metody Register (třídy Dependen- cyProperty ) Registraci je možné provést: –v době definice datové položky –ve statickém konstruktoru třídy, jež tuto vlastnost definuje V době registrace lze specifikovat: –jméno (závislé vlastnosti) –datový typ (pomocí klíčového slova typeof ) –vlastníka – třídu (pomocí typeof ) –metadata –odkaz na funkci (callback) pro ověření platnosti

29/09/ Závislé vlastnosti (6) Metadata jsou definována pomocí instance třídy FrameworkPropertyMetadata Na úrovni metadat lze specifikovat např.: –implicitní hodnotu –funkci (callback), která bude vyvolána: pro úpravu hodnoty (value coercion) při změně hodnoty –příznaky, které zapínají/vypínají další rysy, např.: zda při změně hodnoty má být znovu proveden proces měření, uspořádání apod. zda při změně hodnoty má dojít k překreslení dědičnost hodnot zákaz použití pro animace nebo datové vazby

29/09/ Závislé vlastnosti (7) Hodnoty závislých vlastností lze zpřístupňovat pomocí volání metody: –GetValue : pro čtení –SetValue : pro zápis Ke každé závislé vlastnosti bývá zvykem nap- sat obal (wrapper), který umožní s touto vlast- ností pracovat syntakticky stejně jako s vlast- ností CLR Konvence: –jméno závislé vlastnosti (datové položky, jíž je re- prezentována) vždy končí slovem Property –jméno obalu je až závěrečné slovo Property stejné jako u odpovídající datové položky

29/09/ Závislé vlastnosti (8) Přístup k závislým vlastnostem pomocí jazyka XAML je překládán na přímé volání metod GetValue a SetValue (nikoliv na volání přístupových metod obalu get a set ) Podobně i jiné části kódu mohou k závislé vlastnosti přistupovat přímo Z toho vyplývá: –přístupové metody obalu závislé vlastnosti by mě- ly používat pouze volání metod GetValue, resp. SetValue –v přístupových metodách by neměla být popsána žádná další aplikační logika

29/09/ Závislé vlastnosti (9) Při čtení hodnoty závislé vlastnosti se uplatňu- je následující postup: –určení základní hodnoty závislé vlastnosti: lokálně nastavená hodnota (hodnota nastavená přímo při práci s objektem v kódu na pozadí nebo v jazyce XAML) hodnota nastavená pomocí stylů a šablon (a jejich spouští – triggers) zděděná hodnota implicitní hodnota –modifikace základní hodnoty: je-li základní hodnota výraz (typu Expression ), tak dojde k jeho vyhodnocení (používáno při práci s dyna- mickými zdroji a datovými vazbami)

29/09/ Závislé vlastnosti (10) je-li závislá vlastnost použita v souvislosti s animací, tak se aplikuje požadovaná animace dojde k vyvolání metody pro úpravu hodnoty – value coercion (je-li definována) provede se metoda pro ověření platnosti – validation (je-li definována) Poznámka: –závislé vlastnosti mohou být sdíleny (tzv. shared de- pendency properties) mezi třídami i v případě, že ty- to třídy nejsou ve vztahu předchůdce-následník –existující závislou vlastnost lze použít jako sdílenou voláním metody AddOwner ve statickém konstruk- toru jiné třídy, jež chce tuto vlastnost využívat

29/09/ Závislé vlastnosti (11) Jako závislé vlastnosti jsou implementovány také přidružené vlastnosti (attached properties) Definice (registrace v rámci WPF) přidružené vlastnosti se provádí pomocí volání metody RegisterAttached Přidružené vlastnosti mohou být použity u li- bovolného objektu (vytvořeného na základě třídy DependencyObject nebo jejího po- tomka)  nezapisuje se k nim obal (wrapper) pomocí vlastnosti CLR

29/09/ Závislé vlastnosti (12) Místo obalu se zapisuje dvojice metod: –GetJménoVlastnosti : pro čtení hodnoty –SetJménoVlastnosti : pro zápis hodnoty Tyto metody pro vlastní zpřístupnění hodnoty rovněž používají volání metod GetValue, resp. SetValue

29/09/ Směrované události (1) Směrované události (routed events) jsou rozší- řením doposud používaných.NET událostí Model směrovaných událostí je podobný mo- delu závislých vlastností: –jsou implementovány až rozhraním WPF (nikoliv na úrovni CLR) –mohou být definovány ve třídách odvozených ze třídy UIElement –každá směrovaná událost musí být nejprve regis- trována –jsou reprezentovány veřejnými statickými datový- mi položkami typu RoutedEvent určenými pou- ze pro čtení

29/09/ Směrované události (2) Rozlišují se tři typy směrovaných událostí: –přímá událost (direct event): podobná klasické události vzniká u jednoho elementu a nepostupuje k žádnému jinému elementu např. MouseEnter –bublající událost (bubbling event): postupují směrem nahoru vizuálním stromem elementů např.: MouseDown : –vzniká u elementu, nad nímž bylo stisknuto tlačítko myši (např. ListBox ) –postupuje k jeho rodičovskému elementu (např. Grid ) –postup pokračuje dále, dokud nedorazí ke kořenovému ele- mentu (např. Window )

29/09/ Směrované události (3) postup události může být ukončen nastavením vlastnosti Handled třídy RoutedEventArgs, jejíž objekt (ne- bo objekt jejího potomka) se předává obslužné metodě, na hodnotu true –tunelující událost (tunneling event): postupují stromem elementů směrem dolů mívají označení začínající slovem Preview např. PreviewKeyDown umožňuje zachytit stisk klá- vesy: –nejprve na úrovni okna –následně na specifičtějších kontejnerech –nakonec na elementu, který měl vstupní zaměření (focus) postup tunelující události může být rovněž ukončen nastavením vlastnosti Handled na hodnotu true

29/09/ Směrované události (4) Registrace směrované události se provádí: –v době definice datové položky nebo ve statickém konstruktoru třídy, jež směrovanou událost imple- mentuje –pomocí metody RegisterRoutedEvent třídy EventManager V době registrace lze uvést: –jméno (směrované události) –typ (strategii – přímá, bublající, tunelující) –delegáta definující signaturu obslužné metody (pomocí typeof ) –vlastníka – třídu (pomocí typeof )

29/09/ Směrované události (5) Směrované události bývají obvykle obaleny standardními.NET událostmi Tento obal (wrapper) využívá přístupové me- tody (standardní konstrukce jazyka C#): –add : pomocí metody AddHandler (třídy UIElement ) přidává odkaz na obslužnou metodu –remove : pomocí metody RemoveHandler ( UIElement ) odebírá odkaz na obslužnou metodu Přístupové metody ( add a remove ) by nemě- ly obsahovat žádnou další aplikační logiku

29/09/ Směrované události (6) Konvence: –datové položky reprezentující směrované události bývá zvykem ukončovat slovem Event –jméno obalu je až závěrečné slovo Event stejné jako u odpovídající datové položky Poznámka: –podobně jako závislé vlastnosti mohou být i smě- rované události sdílené mezi třídami (pomocí me- tody AddOwner ), popř. připojené (attached)

29/09/ Zdroje Zdroje (resources) ve WPF se dělí do dvou skupin: –binární: zdroje využívané programem, které nebyly vytvořeny zdrojovým kódem programu (např. obrázky, ikony, zvukové záznamu apod.) –logické (objektové, XAML): objekty, které jsou uloženy ve slovníku a mohou být použity na různých místech programu dělí se (je možné se na ně odkazovat jako) na: –statické: odkaz na ně se do vlastnosti přiřadí pouze jedenkrát (při prvním načtení ze slovníku), pokud dojde ke změně ve slovníku, tak už tato změna neovlivní hodnotu vlastnosti –dynamické: změna hodnoty zdroje se promítne i do vlastnosti, jež se na ni odkazuje

29/09/ Binární zdroje (1) Neprogramové části aplikace jako jsou např. –obrázky, ikony –audio záznamy –video záznamy Lze je rozdělit na: –zdroje, které jsou připojeny k výsledné sestavě (assembly) – soubory, které zůstávají samostatně: známé v době překladu programu neznámé v době překladu (dynamicky generované) Binární zdroje se přidávají k projektu pomocí Solution Exploreru

29/09/ Binární zdroje (2) Obsahují vlastnost Built Action, kterou lze nastavit na hodnotu: –Resource : zdroj bude součástí sestavy (bude k ní připojen) –Content : zdroj zůstane jako samostatný soubor a v sestavě se ulo- ží pouze odkaz na něj bývá nutné ještě nastavit vlastnost Copy to Output Directory na hodnotu Copy always nebo Copy if newer Zpřístupnění binárního zdroje v jazyku XAML se provádí zápisem URI (Uniform Resource Indentifier)

29/09/ Binární zdroje (3) Příklad: Pro zpřístupnění binárních zdrojů v kódu na pozadí je nutné URI specifikovat pomocí třídy Uri Poznámka: –jazyk XAML se překládá do jazyka BAML, jenž je k programu připojen jako binární zdroj