Výukový program WPF pro začátečníky
⚡ Chytré shrnutí
WPF (Windows představení Foundation) je Microsoftrámec pro budování bohatých Windows desktopové aplikace. Začátečníci se naučí, jak se XAML, datové vazby a hardwarově akcelerovaná grafika kombinují a vytvářejí škálovatelná, vizuálně bohatá uživatelská rozhraní s menším množstvím kódu.

Co je WPF?
WPF je rámec pro stavbu Windows aplikace, které vývojářům umožňují vytvářet bohatá uživatelská rozhraní s 3D animacemi a sytými barvami s využitím menší složitosti kódu. Jedná se o vektorový renderovací engine, který využívá hardwarovou akceleraci moderních grafických karet, díky čemuž je uživatelské rozhraní rychlejší a vysoce škálovatelné. WPF je zkratka pro Windows představení Foundation.
WPF lze považovat za vývoj oproti WinForms. Poskytuje snadno ovladatelný grafický systém pro... Windows a nabízí jasné oddělení mezi uživatelským rozhraním a obchodní logikou.
Aplikace WPF se obvykle nasazují jako samostatné desktopové programy a lze je také hostovat jako vložené objekty v jiných aplikacích.
Proč WPF?
Existuje mnoho důvodů pro použití platformy WPF. Mezi nejvýznamnější patří:
- Ideální platforma pro použití, pokud potřebujete pracovat s různými typy médií
- WPF umožňuje vytvořit uživatelské rozhraní s upraveným vzhledem. Pomáhá vám také, když potřebujete načíst část uživatelského rozhraní nebo chcete navázat XML data.
- Umožňuje vám využít výhod velké knihovny tříd .NET, na které je postavena technologie .NET
- Nezávislost na rozlišení, takže aplikace vyvinuté pomocí WPF mohou běžet na malých obrazovkách tabletů nebo 20palcovém monitoru
- WPF je postaven na DirectX místo WinAPI. Využívá grafický systém klientského počítače, a proto nabízí větší výkon pro vykreslování grafiky.
- Podporuje model flow document, který umožňuje kvalitu rozvržení „pro publikování na počítači“.
- Vzhled a chování jsou volně propojeny. To umožňuje návrhářům a vývojářům pracovat na dvou oddělených modelech.
- V frameworku WPF můžete graficky navrhovat nástroje pomocí jednoduchých XML dokumentů namísto parsování kódu.
- Umožňuje použít hardwarovou akceleraci pro kreslení GUI pro lepší výkon
Dále se podívejme, jak se rámec v průběhu času vyvíjel.
Historie WPF
Windows 1.0 bylo prvním GUI prostředím MicrosoftFungoval jako vrstva nad DOSem a pro grafiku a uživatelské rozhraní se spoléhal na systémy GDI a USER.
DirectX byl představen v roce 1995 jako vysoce výkonný grafický systém určený pro hry a další grafická prostředí. V průběhu let bylo vydáno mnoho verzí a DirectX 9 poskytl knihovnu, kterou bylo možné použít se spravovaným kódem .NET.
| verze WPF | Rok vydání | .Net verze | Verze Visual Studio | Funkce |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | N / A | První vydání. Vývoj WPF však lze provést pomocí VS 2005. |
| 3.5 | 2007 | 3.5 | USA 2008 | Úpravy a vylepšení v: Model aplikace, vazby, ovládací prvky, dokumenty, anotace a 3D prvky uživatelského rozhraní. |
| 3.5 SP1 | 2008 | 3.5 SP1 | N / A | Nativní podpora úvodní obrazovky. Nové ovládání webového prohlížeče, podpora DirectX pixel shader. |
| 4.0 | 2010 | 4.0 | USA 2010 | Nové ovládací prvky: Kalendář, DataGrid, DatePicker. Podpora multi-touch a manipulace. |
| 4.5 | 2012 | 4.5 | USA 2012 | Rychlejší spuštění, vylepšený výkon při zobrazování velkých datových sad. Nový ovládací prvek Ribbon a rozhraní INotifyDataErrorInfo pro ověřování dat. |
| 4.5.1 | 2013 | 4.5.1 | USA 2013 | Drobná vylepšení výkonu a spolehlivosti. |
| 4.5.2 | 2014 | 4.5.2 | NA | Žádná zásadní změna |
| 4.6 | 2015 | 4.6 | USA 2015 | Průhledná podpěra dětského okna Vylepšení HDPI a Touch |
| 4.8 | 2019 | 4.8 | USA 2019 | Finální velká verze .NET Frameworku s opravami chyb ve vysokém rozlišení a vylepšeními přístupnosti. |
| .NET Core 3.0 a novější | 2019 - přítomen | .NET Core 3.0 až .NET 10 | VS 2019/2022 | WPF se stává open source a dodává se s moderním .NET (aplikace zůstávají Windows-pouze). |
WPF již není verzováno odděleně od .NET. Od roku 2019 je dodáváno jako open-source komponenta moderní platformy .NET a aktuální verze je součástí .NET 10, která vyšla v listopadu 2025 jako verze s dlouhodobou podporou (LTS).
Vlastnosti WPF
Níže uvedený diagram seskupuje hlavní funkce WPF a je podrobně uveden za ním.

- Dokumenty a tisk
- Zabezpečení, dostupnost a lokalizace
- Nabízí interoperabilitu s Windows Ovládací prvky formulářů
- Direct3D se používá v grafických aplikacích, kde je důležitý výkon
- K vykreslování používá hardware grafické karty
- Vektorová grafika umožňuje škálovat vaši aplikaci bez ztráty kvality
- WPF podporuje logický pixelový systém s plovoucí desetinnou čárkou a 32bitové barvy ARGB.
- Předefinujte styly a ovládací šablony
- Vytváření mezinárodních písem z kompozitních písem
- Vykreslování textu ve WPF využívá technologii ClearType
- Umožňuje použít techniku ukládání do mezipaměti předem vykresleného textu ve videopaměti
- Přístup založený na zdrojích pro každou kontrolu
- Časovače prezentací jsou inicializovány a spravovány WPF
- Podporován je také vztah mezi videem a animací
- Ve WPF je styl sada vlastností, které by měly být aplikovány na obsah používaný pro vizuální vykreslování.
- Šablony ve WPF vám pomohou změnit uživatelské rozhraní dokumentu.
- Příkazy jsou spíše abstract a volně vázaná verze událostí
- Podpora WPF pro příkazy snižuje množství kódu, který musíme napsat
Další v tomto WPF C# tutoriál, seznámíme se s typy jader a infrastrukturou WPF.
Typy jádra WPF a infrastruktury
Třídy ve WPF jsou rozděleny do čtyř různých typů:
- UIElement
- FrameworkElement
- ContentElement
- FrameworkContentElement
Tyto třídy jsou známé jako třídy základních elementů. Poskytují základ pro model tvorby uživatelských rozhraní.
Uživatelská rozhraní WPF se skládají z prvků, které jsou sestaveny ve stromové hierarchii nazývané strom prvků. Strom prvků představuje intuitivní způsob uspořádání uživatelských rozhraní a je to struktura, prostřednictvím které získáte výkonné služby uživatelského rozhraní.
XML
Rozšiřitelný aplikační značkovací jazyk (Extensible Application Markup Language, XAML, vyslovuje se „zammel“) je deklarativní způsob definování uživatelských rozhraní.
Zde je definice XAML jednoduchého tlačítka:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Výhody použití jazyka XAML:
- XAML odděluje vzhled front-endu od logiky back-endu
- XAML je nejjednodušší způsob reprezentace uživatelských rozhraní
- XAML efektivně spolupracuje s návrhovými nástroji
Řízení
Framework WPF podporuje mnoho užitečných ovládacích prvků, jako například:
- Úpravy ovládacích prvků, jako je textBox, ŠekBox, RadioButton
- Seznam ovládacích prvků, jako je SeznamBox, ListView, TreeView
- Uživatelské informace, jako je Label, WPF ProgressBar, ToolTip
- Akce jako Nabídka, Tlačítko a Panel nástrojů
- Vzhledy, jako je okraj, obrázek WPF a pole zobrazení
- Běžná dialogová okna, jako například OpenFileDialog a PrintDialog
- Kontejnery jako TabControl, ScrollBar a GroupBox
- Rozvržení jako DockPanel, StackPanel a Grid
- Navigace, jako je rámeček a hypertextový odkaz
Vzhled ovládacích prvků lze přizpůsobit pomocí stylů a šablon bez programování. Můžete také vytvořit vlastní ovládací prvek odvozením nové třídy z příslušné základní třídy.
Vzhled
WPF poskytuje funkci pro přizpůsobení vzhledu vaší aplikace. Umožňuje vám nastavit objekty a hodnoty pro věci, jako jsou písma, pozadí atd.
Funkce stylů vám umožňuje standardizovat konkrétní vzhled celého produktu. Umožňuje vám nahradit výchozí vzhled při zachování jeho výchozího chování.
Šablona dat umožňuje ovládat výchozí vizualizaci vázaných dat. Pomocí šablon můžete snadno aplikovat vizuální styly operačního systému.
Rozvržení a panely
Rozvržení vám pomůže se správným umístěním a velikostí ovládacích prvků. Je součástí procesu tvorby prezentace pro uživatele. Framework WPF usnadňuje proces rozvržení a nabízí lepší přizpůsobivost vzhledu uživatelského rozhraní.
Infrastrukturu rozvržení nabízí pět hlavních tříd: 1) StackPanel, 2) DockPanel, 3) WrapPanel, 4) Grid a 5) Canvas
Grafika
WPF poskytuje vylepšený grafický systém:
- WPF používá jednotky nezávislé na zařízení, což umožňuje rozlišení a nezávislost na zařízení. Každý pixel nezávislý na zařízení se automaticky škáluje podle nastavení počtu bodů na palec v systému.
- WPF používá double namísto float a podporuje širší škálu barev
- Grafický engine WPF je navržen tak, aby mohl využívat výhod grafického hardwaru, je-li k dispozici
Dokumenty a tisk
Framework WPF nabízí tři typy dokumentů:
- Opravené dokumenty: Tento typ dokumentu podporuje WYSIWYG prezentace.
- Průběh dokumentů: Umožňuje upravit a přeformátovat obsah na základě proměnných za běhu, jako je velikost okna a rozlišení zařízení.
- XPS dokumenty: Stránkovaná reprezentace elektronického dokumentu ve formátu založeném na XML. XPS je otevřený, standardizovaný formát dokumentů.
WPF umožňuje lepší kontrolu nad tiskovým systémem, včetně vzdáleného tisku a front. Dokumenty XPS lze navíc tisknout přímo bez nutnosti jejich převodu do tiskového formátu.
Jakmile si probereme stavební bloky, podívejme se, jak tyto díly do sebe uvnitř zapadají.
WPF Architecture
WPF je součástí frameworku .NET. Obsahuje jak spravovaný, tak nespravovaný kód. Důležité komponenty architektury WPF jsou vysvětleny na obrázku níže:
Komponenty architektury WPF
- PresentationFrameworkPomáhá vám vytvářet prvky nejvyšší úrovně, jako jsou ovládací prvky, styly, rozvržení, okna atd.
- PresentationCoreObsahuje základní typy, jako například UIElement a Visual, ze kterých jsou odvozeny všechny ovládací prvky a tvary v souboru PresentationFramework.dll.
- CLR: Díky tomu je proces vývoje produktivní tím, že nabízí funkce jako správy paměti, zpracování chyb atd.
- Milcore: Milcore je součástí nespravovaného kódu, který nabízí těsnou integraci s DirectX.
- DirectX: Jedná se o nízkoúrovňové API, které vykresluje grafiku WPF. DirectX interaguje s ovladači a vykresluje obsah.
- Uživatel32: Jedná se o základní API, které je široce používáno mnoha programy. Spravuje paměť a oddělení procesů. User32 vám pomáhá rozhodnout, který prvek bude kam na obrazovce umístěn.
- Jádro: Vstup pochází ze signálu na ovladači zařízení v režimu jádra a je směrován do správného procesu připojením k Windows jádro a User32.
Vazba dat WPF
Vazba dat je jedním z nejsilnějších konceptů ve WPF. Místo psaní kódu, který ručně kopíruje hodnoty mezi ovládacími prvky a objekty, deklarujete připojení v XAML a WPF automaticky synchronizuje obě strany. Například:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF podporuje čtyři režimy vazby:
- Jednosměrný: Ovládací prvek se aktualizuje při změně zdrojových dat.
- Obousměrný: Změny probíhají v obou směrech mezi ovládáním a zdrojem
- Jednorázově: Ovládací prvek načte zdrojovou hodnotu pouze jednou, při načítání.
- JednosměrnýKZdroji: Ovládací prvek posílá svou hodnotu do zdroje, nikdy ne naopak.
Vazba dat je také hybnou silou vzoru MVVM (Model-View-ViewModel), nejběžnější architektury pro profesionální aplikace WPF, protože umožňuje, aby pohled zůstal v XAML, zatímco logika se nachází v testovatelných třídách C#.
💡 Tip: Implementujte rozhraní INotifyPropertyChanged ve svých datových třídách. Bez něj se uživatelské rozhraní neobnoví při změně hodnot vlastností v kódu.
Instalace WPF
Pro instalaci WPF se podívejte na tento odkaz: https://www.guru99.com/download-install-visual-studio.html
V další části tohoto tutoriálu o WPF aplikaci si vytvoříme naši první WPF aplikaci.
Jak vytvořit svou první aplikaci WPF?
V tomto příkladu WPF vyvineme základní WPF aplikaci. Začněme tedy s jednoduchou implementací podle kroků uvedených v níže uvedeném příkladu WPF aplikace.
Krok 1) Ve Visual Studiu přejděte do nabídky Soubor > Nový > Projekt.
Krok 2) V novém okně projektu
- Vyberte aplikaci WPF
- Zadejte název jako „MyWPF“
- klepněte na tlačítko OK
Krok 3) Visual Studio ve výchozím nastavení vytvoří dva soubory
- Soubor XAML (MainWindow.xaml)
- Soubor CS (MainWindow.xaml.cs)
MainWindow.xaml má
- Designové okno
- Soubor XAML
V okně XAML se standardně zapisují následující tagy:
Mřížka je ve výchozím nastavení prvním prvkem.
Soubor MainWindow.xaml.cs obsahuje odpovídající kód na pozadí pro soubor návrhu XAML:
Krok 4) V sadě nástrojů,
- Přetáhněte textBox prvek do okna návrhu
- TextBox se objeví v okně návrhu
- Uvidíte XAML kód pro textBox přidáno
Krok 5) Změňte text na „První program WPF“.
Krok 6) Klikněte na tlačítko Start
Krok 7) Ve výstupu uvidíte okno
Gratulujeme! Navrhli a vytvořili jste svou první aplikaci WPF. Dále v tomto tutoriálu WPF pro začátečníky uvidíme rozdíl mezi WPF a WinForms.
WPF vs. WinForms
| WPF | WinForms |
|---|---|
| Je to novější framework, takže více odpovídá současným standardům. | Je starší, takže osvědčenější. |
| Je flexibilní a bohatý na funkce. Můžete navrhovat velmi bohaté aplikace bez nutnosti programování nebo nákupu ovládacích prvků. | Není tak bohatý na funkce |
| Vývojáři 3rd Ovládací prvky pro párty se zaměřují na kompatibilitu s WPF, protože je to budoucnost. | Existuje mnoho ovládacích prvků třetích stran, které si můžete zakoupit nebo získat zdarma. |
| XAML vám umožňuje snadno vytvářet a upravovat grafické uživatelské rozhraní. Umožňuje rozdělit práci mezi návrháře (XAML) a programátora (C#, VB.NET atd.). | In Windows Formuláře, veškerý kód je napsán na jednom místě. |
| Znalosti XAML se přenášejí přímo do novějších frameworků, jako jsou WinUI 3, .NET MAUI a Avalonia UI. | Dovednosti WinForms se vztahují hlavně na klasické Windows vývoj desktopových aplikací. |
| Ovládací sada WPF je omezená | In-box ovládací prvky jsou velmi výkonné |
Typ aplikací vytvořených pomocí WPF
- WPF se používá pro samostatné použití. Windows desktopové aplikace, jako jsou podnikové nástroje, dashboardy, obchodní terminály a designový software
- Windows Formuláře a stránky WPF mohou koexistovat ve stejné aplikaci
- Můžete vyvíjet aplikace ve stylu navigace po stránkách/oknech
WPF v moderním .NET
Microsoft open-source WPF v prosinci 2018 a od verze .NET Core 3.0 (2019) je tento framework dodáván s každou moderní verzí .NET, a to až do verze .NET 10 včetně. Přesun aplikace do moderního .NET přináší rychlejší spuštění, jednodušší nasazení díky samostatnému publikování a přístup k aktuálním funkcím jazyka C#, zatímco programovací model WPF zůstává stejný.
WPF zůstává Windows-pouze. Pokud si dnes vybíráte desktopový framework, toto srovnání vám pomůže:
| Rámec | nejlepší |
|---|---|
| WPF | Zralý, bohatý na funkce Windows desktopové aplikace s obrovským ekosystémem |
| WindowsUI 3 | Nové aplikace zaměřené na moderní Windows 11 vzhled a dojem |
| .NET OPRAVEN | Multiplatformní aplikace zahrnující Windows, macOS, Androida iOS |
Protože WPF je aktivně spravováno a hluboce integrováno do podnikového softwaru, jeho osvojení je praktickou investicí. Jakmile se s tvorbou těchto aplikací seznámíte, vyplatí se procvičit si nejběžnější Otázky na pohovoru WPF uzamknout koncepty jako XAML, vázání dat a vizuální strom.









