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.

  • 🧭 Foundation: WPF je vektorový framework uživatelského rozhraní poháněný DirectX, který je součástí platformy .NET.
  • 🎨 Značení XAML: Deklarativní syntaxe XML odděluje návrh rozhraní od obchodní logiky C#.
  • 🧱 Archistruktura: PresentationFramework, PresentationCore a Milcore spolupracují při vykreslování nad DirectX.
  • 🔗 Vazba dat: Vestavěná vazba propojuje ovládací prvky se zdroji dat a zajišťuje fungování vzoru MVVM.
  • 🛠️ Praktický začátek: Šablony sady Visual Studio vám umožňují vytvořit a spustit první aplikaci WPF v sedmi krocích.
  • ???? Moderní relevance: WPF je open source a je dodáván s .NET 10 s dlouhodobou podporou.

Výukový program WPF pro začátečníky

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.

Vlastnosti WPF
Vlastnosti WPF
  • 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:

WPF Architecture

WPF Architecture

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.

Nabídka Soubor ve Visual Studiu zobrazující možnost Nový projekt

Krok 2) V novém okně projektu

  1. Vyberte aplikaci WPF
  2. Zadejte název jako „MyWPF“
  3. klepněte na tlačítko OK

Nové okno projektu s vybranou šablonou aplikace WPF

Krok 3) Visual Studio ve výchozím nastavení vytvoří dva soubory

  • Soubor XAML (MainWindow.xaml)
  • Soubor CS (MainWindow.xaml.cs)

Průzkumník řešení zobrazující soubory MainWindow.xaml a MainWindow.xaml.cs

MainWindow.xaml má

  1. Designové okno
  2. Soubor XAML

Návrhové okno MainWindow.xaml a editor XAML ve Visual Studiu

V okně XAML se standardně zapisují následující tagy:

Výchozí tagy XAML generované pro nové okno WPF

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:

Soubor kódu MainWindow.xaml.cs pro okno WPF

Krok 4) V sadě nástrojů,

  1. Přetáhněte textBox prvek do okna návrhu
  2. TextBox se objeví v okně návrhu
  3. Uvidíte XAML kód pro textBox přidáno

Přetažení textuBox z panelu nástrojů do návrhového okna WPF

Krok 5) Změňte text na „První program WPF“.

Úpravy textuBox vlastnost text pro první program WPF

Krok 6) Klikněte na tlačítko Start

Tlačítko Start ve Visual Studiu pro spuštění aplikace WPF

Krok 7) Ve výstupu uvidíte okno

Okno spuštěné aplikace WPF zobrazující text První program WPF

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.

Nejčastější dotazy

Pro návrh rozhraní potřebujete XAML a pro logiku aplikace C# (nebo VB.NET). Základní znalost objektově orientovaného programování a knihovny tříd .NET značně usnadňuje učení se WPF.

Ne. WPF závisí na DirectX a Windows API, takže běží pouze na WindowsPro vývoj XAML napříč platformami zvažte Uživatelské rozhraní Avalonie or .NET OPRAVEN.

Ano. Nástroje jako GitHub Copilot dokáže generovat rozvržení XAML, vazebné výrazy a styly z komentářů, což urychluje učení a snižuje opakující se kódování pro začátečníky.

Můžete se integrovat ML.NET pro lokální strojové učení nebo volání cloudových služeb umělé inteligence, jako například Azure OpenAI z vašeho kódu C# a poté zobrazte výsledky pomocí standardní datové vazby WPF.

Ano. WPF je open source pod licencí MIT a s Visual Studio Community Edition můžete vytvářet aplikace zdarma.

Shrňte tento příspěvek takto: