WPF

PVA


Bc. Matěj Cajthaml — SSPŠ

©

Forms

Co jsou to forms?

Máte špatné zkušenosti, že?

Pokusíme se je zlepšit!

Windows forms vs Windows Presentation Foundation (WPF)

WPF

  • nový způsob vytváření vizuálních aplikací
  • velmi podobné formsům
  • windows forms neuměli být příliš responzivní
  • dovoluje různé balíčky a designové prvky

Tvorba aplikace

  • buď používáme vizuální editor — prvky přidáváme, zmenšujeme
  • nebo používám XAML — podobné XML a tedy i HTML

Aplikace lze stejně kompilovat a šířit mezi uživatele.

Založte si nový projekt!

Od teď používáme WPF Framework či Core.

Layout

Toolbox

Základní používání

  • vlastnosti
  • události

Událost

  • na každý prvek ve formsech lze přidat událost
  • např. kliknutí
  • až událost nastane, zavolá se akce, kterou ji přiřadíme

Přidávačka

Práce

Vytvořte program, který po kliknutí na tlačítko přidá do textboxu náhodné číslo na novou řádku.

Editor

Práce

Vytvořte program, který bude mít textové pole a dvě tlačítka. Jedno tlačítko přečte text ze souboru a zobrazí ho. Druhé tlačítko daný text uloží do souboru.

Navíce: další textové pole bude určovat lokaci souboru

Šifrovačka

Práce

Dynamické přidávání objektů

  • každý prvek formuláře můžeme vytvářet v kódu
  • prvky můžeme úplně stejně modifikovat (velikosti, barvy, ...)
  • poté můžeme prvek vložit do formuláře

Přidání do formuláře

Přidávání událostí

Vypnutí a zapnutí

Práce

Vytvořte dvě tlačítka ve formuláři. Jedno tlačítko, pokud prvek neexistuje, přidá label do formuláře. Druhé tlačítko, pokud label existuje, jej smaže.

Více formulářu

  • u většinu programů potřebujeme více oken
  • v terminologii WPF je formulář právě okno
  • tyto formuláře nesdílejí design, data ani kód
  • potřebujeme je jednotlivě otevírat a zavírat
  • když zavřeme všechny okna, program se vypne

Otevírání

  • před otevřením musíme vytvořit daný formulář (podobné jako struktura)
  • poté daný formulář otevřeme zavoláním .Show()

Uzavření

  • pro uzavření formuláře na něj zavoláme .Close()
  • formulář se poté zavře

Otevírání & zavírání

Práce

Vytvořte formulář, který po stisknutí tlačítka otevře další formulář a ten předchozí se zavře.

Zjistěte, co dělá .ShowDialog() na formuláři.

Předávání dat

  • při vytvoření instance formuláře můžeme mezi instancemi předávat data
  • např. přihlašovací údaje, nastavení, ...

Předávka

Práce

Minulou práci upravte tak, že si mezi sebou ještě předají data z textboxu do labelu.

Knihovny

  • již známe z čistého C#
  • dovolí nám používat funkcionalitu od jiného vývojáře
  • WPF mají k dispozici různé designové systémy a formulářové prvky

Instalace balíčků

  • používáme NuGet (doporučené)
    • balíčkovací systém
    • balíčky lze zobrazit přímo ve VS
  • můžeme instalovat i pomocí stažených souborů

Ukázka NuGet

  • založme nový projekt WPF
  • v horní nabídce:
    • Nástroje
    • Správa balíčku NuGet
    • Spravovat balíčky pro řešení

EMOJIII, SKRZ EMOJIII

Práce

Dle níže uvedeného obrázku vypracujte WPF aplikaci, ve které se budou pomocí tlačítka vybírat emoji. Vybrané emoji se budou postupně zapisovat do TextBoxu.

Co je to Material Design?

Material Design

  • designový systém vytvořen společností Google
  • velmi oblíbený design (Android, všechny aplikace Googlu, ...)
  • https://material.io
  • definuje jak by se měli aplikace navrhovat, co dělat a nedělat
  • definuje všechny potřebné komponenty a jejich chování

MD v WPF

  • existuje komunitou vytvořená knihovna na MD ve WPF
  • Material Design In XAML Toolkit
  • GitHub

Material Design

Práce

Nainstalujte si MD in XAML v novém WPF projektu. Zkuste ve WPF replikovat design úkolu (32.) Kalendář.

Další knihovny

Jak lze upravovat design formulařů ve WPF?

Konec WPF!

  • WPF budeme používat v dalších úkolech a hodinách
  • můžete jej využívat na závěrečnou práci

Máte otázky k WPF?

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/