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.

Slides:



Advertisements
Podobné prezentace
Tabulkový procesor Práce se souborem – otevření, tvorba a použití šablony, tisk, propojení tabulky Excel s Wordem, nastavení Excelu, uložení Autorem materiálu.
Advertisements

Výukový materiál zpracovaný v rámci projektu EU peníze školám Registrační číslo projektu:CZ.1.07/1.4.00/ Šablona:III/2 Inovace a zkvalitnění výuky.
Tabulkový procesor Formuláře – interaktivní prvky v Excelu Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Růžena Hynková. Dostupné z Metodického.
Ověřené výstupy z ISKN elektronická značka Jiří Formánek
Delphi – práce se základními komponentami (1. hodina) OB21-OP-EL-KON-DOL-M-4-008A Orbis pictus 21. století.
Úvod do Delphi - 1.hodina OB21-OP-EL-KON-DOL-M-4-006A Orbis pictus 21. století.
RŮZNOST KANCELÁŘSKÝCH BALÍKŮ je řada za sebou následujících snímků (slidů) předváděných na PREZENTACE monitoru počítače plátně prostřednictvím dataprojektoru.
Programování v jazyce C++ Dědičnost a polymorfismus.
Elektronické učební materiály - II. stupeň Digitální technologie 9 Autor: Bc. Pavel Šiktanc Práce s grafickým programem GIMP Co se všechno naučíme??? Tvorba.
Snímek 1 PowerPoint2OP381 Manažerská informatika 1 2OP381 Manažerská informatika 1 Microsoft PowerPoint 2016 – 2. část.
Název projektu:ZŠ Háj ve Slezsku – Modernizujeme školu Číslo projektu:CZ.1.07/1.4.00/ Oblast podpory: Zlepšení podmínek pro vzdělávání na základních.
HTML HyperText Markup Language Je to značkovací jazyk používaný na tvorbu webových stránek, které jsou propojeny hypertextovými odkazy. Je hlavním z.
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.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_16_ Téma: pro 4.,5.ročník ZŠ, vytvořeno:
Principy Základních registrů Ing. Ondřej Felix, CSc.
Funkce Lineární funkce a její vlastnosti 2. Funkce − definice Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Projekt: Škola pro život Registrační číslo: CZ.1.07/1.4.00/ Číslo DUM: VY_32_INOVACE_02-informatika 8. třída_021 Základní škola: Základní škola.
= Sada diapozitivů (snímků), které se promítají na promítacím přístroji (zpětném projektoru). Jednotlivé snímky se zobrazují v určitém pořadí a umožňují.
ZŠ Brno, Řehořova 3 S počítačem snadno a rychle Informatika 9. ročník III
Software =je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost. - Software je protiklad k hardwaru,
Microsoft Excel verze 2010 Mgr. Přemysl Kejzlar.
Věcné autority v roce 2016
HTML a CSS Rostislav Miarka.
Výukový materiál zpracován v rámci projektu
Bohumil Havel MoodleMoot.cz 2016
STATISTIKA Starší bratr snědl svůj oběd i oběd mladšího bratra. Oba snědli v průměru jeden oběd.
VY_32_ INOVACE_IKR5 - 14– VIDEO V PREZENTACI. Název školy:
Základní škola T. G. Masaryka a Mateřská škola Poříčany, okr. Kolín
Evaluace předmětů studenty (Anketky)
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
Lineární funkce - příklady
Výukový materiál zpracován v rámci projektu
1. Tlačítko START 2. Podrobnější hledání 3. Zařízení a tiskárny 4
ORGANIZACE DAT V POČÍTAČI
SPRÁVCE ÚLOH Adéla Veselá 1. A.
Ovládací prvky (1) Ovládací prvky jsou ve WPF reprezentovány třídami (podobně jako ve Windows Forms) Lze je rozdělit do následujících skupin: tlačítka:
Programování v jazyce C++
Struktury.
Tlačítko start Eva Kimlová.
8.1 Aritmetické vektory.
Tisk z MS Windows (1) Pro účely tisku na tiskárnách Windows Forms poskytují třídu PrintDocument Třída PrintDocument je definována ve jmenném prostoru:
Datové vazby (1) Datová vazba (data binding) je proces, který ustanovuje spojení mezi uživatelským rozhra-ním aplikace a její aplikační logikou Poskytuje.
Dostupné z Metodického portálu ; ISSN
TÉMA: Počítačové systémy
Databáze MS ACCESS 2010.
Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice,
Název: Práce s tabulátory Autor: Hokr Jan
Výukový materiál zpracován v rámci projektu
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
PEXESO.
Kvadratické nerovnice
Číslo projektu CZ.1.07/1.4.00/ Název sady materiálů
Informatika pro ekonomy přednáška 8
Stahování eBooks ~ Podrobný průvodce prvním stahováním
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Pozn. Zaměřeno na práci v MS PowerPoint
Typy Oken, Zobrazení a Konfigurace
Materiál byl vytvořen v rámci projektu
Remote login.
Název školy: Autor: Název: Číslo projektu: Název projektu:
A5M33IZS – Informační a znalostní systémy
Vázání dat Data Binding
Lineární funkce a její vlastnosti
Informatika – Základní operace s buňkami
Grafy kvadratických funkcí
Teorie chyb a vyrovnávací počet 2
Hromadné dokumenty opakující se pro kolekci osob
Základní ovládání „Windows“
Transkript prezentace:

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 21/09/2018

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 jestliže není nastavena vlastnost DialogResult na hodnotu true, tak stisk tlačítka OK automaticky ne-uzavírá dialog a je nutné provést volání metody Close 21/09/2018

Dialogová okna (3) Dialogové okno by: 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 21/09/2018

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) 21/09/2018

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): 21/09/2018

Stromy elementů (2) Window StackPanel Button ListBox String String 21/09/2018

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 21/09/2018

Stromy elementů (4) 21/09/2018

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) 21/09/2018

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í 21/09/2018

Závislé vlastnosti (3) datové vazby (data binding): použití stylů: 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 21/09/2018

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 21/09/2018

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 21/09/2018

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 21/09/2018

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 21/09/2018

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 21/09/2018

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) 21/09/2018

Závislé vlastnosti (10) Poznámka: 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 21/09/2018

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 21/09/2018

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 21/09/2018

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í 21/09/2018

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) 21/09/2018

Směrované události (3) tunelující událost (tunneling event): 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 21/09/2018

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) 21/09/2018

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 21/09/2018

Směrované události (6) Konvence: Poznámka: 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) 21/09/2018

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 21/09/2018

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 21/09/2018

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) 21/09/2018

Binární zdroje (3) Příklad: <Image Source = ”Images\Image.jpg”/> <Image Source = ”http://www.someweb.com/Image.jpg”/> <Image Source = ”MyDll;Component/Addr/Image.jpg/> 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 21/09/2018