Samouczek WPF dla początkujących
⚡ Inteligentne podsumowanie
WPF (Windows Prezentacja Foundation) jest Microsoftramy dla budowania bogatego Windows Aplikacje desktopowe. Początkujący uczą się, jak XAML, wiązanie danych i grafika akcelerowana sprzętowo łączą się, aby tworzyć skalowalne, bogate wizualnie interfejsy użytkownika z mniejszą ilością kodu.

Co to jest WPF?
WPF jest podstawą do budowania Windows Aplikacje, które pozwalają programistom tworzyć bogate interfejsy użytkownika z animacjami 3D i bogatą kolorystyką, przy mniejszej złożoności kodu. Jest to silnik renderujący oparty na wektorach, który wykorzystuje akcelerację sprzętową nowoczesnych kart graficznych, co sprawia, że interfejs użytkownika jest szybszy i wysoce skalowalny. Skrót WPF oznacza… Windows Prezentacja Foundation.
WPF można uznać za ewolucję WinForms. Zapewnia łatwy w obsłudze graficzny system wyświetlania Windows i zapewnia wyraźne oddzielenie interfejsu użytkownika od logiki biznesowej.
Aplikacje WPF są zazwyczaj wdrażane jako samodzielne programy desktopowe, ale mogą być również hostowane jako obiekty osadzone w innych aplikacjach.
Dlaczego WPF?
Istnieje wiele powodów, dla których warto korzystać z platformy WPF. Oto kilka najważniejszych:
- Idealna platforma do wykorzystania, jeśli chcesz pracować z różnymi typami mediów
- WPF pozwala na tworzenie interfejsu użytkownika ze skórkami. Przydaje się również, gdy trzeba załadować fragment interfejsu lub powiązać dane XML.
- Pozwala na korzystanie z dużej biblioteki klas .NET, na której jest zbudowana Technologia .NET
- Niezależność od rozdzielczości, dzięki czemu aplikacje opracowane przy użyciu WPF mogą działać na małych ekranach tabletów lub 20-calowych monitorach
- WPF bazuje na DirectX zamiast WinAPI. Wykorzystuje system graficzny komputera klienckiego, oferując w ten sposób większą moc renderowania grafiki.
- Obsługuje model dokumentu przepływu, który umożliwia układ o jakości „desktop publishing”
- Wygląd i zachowanie są ze sobą luźno powiązane. Dzięki temu projektanci i programiści mogą pracować nad dwoma oddzielnymi modelami.
- W ramach WPF można graficznie projektować narzędzia, korzystając z prostych dokumentów XML zamiast analizować kod
- Umożliwia korzystanie ze sprzętowego przyspieszenia do rysowania GUI, co zapewnia lepszą wydajność
Następnie przyjrzyjmy się, jak struktura ta ewoluowała na przestrzeni czasu.
Historia WPF
Windows Wersja 1.0 była pierwszym środowiskiem GUI firmy MicrosoftDziałał jako warstwa na systemie DOS, wykorzystując systemy GDI i USER do obsługi grafiki i interfejsu użytkownika.
DirectX został wprowadzony w 1995 roku jako wysokowydajny system graficzny przeznaczony do gier i innych środowisk graficznych. Z biegiem lat ukazało się wiele wersji, a DirectX 9 udostępnił bibliotekę, której można było używać z zarządzanym kodem .NET.
| Wersja WPF | Rok wydania | Wersja .Net | Wersja Visual Studio | Udogodnienia |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | N / A | Pierwsze wydanie. Jednak rozwój WPF można wykonać za pomocą VS 2005. |
| 3.5 | 2007 | 3.5 | W porównaniu z 2008 | Modyfikacje i ulepszenia w: Model aplikacji, powiązanie, kontrolki, dokumenty, adnotacje i elementy interfejsu użytkownika 3-D. |
| 3.5 SP1 | 2008 | 3.5 SP1 | N / A | Natywna obsługa ekranu powitalnego. Nowa kontrola przeglądarki internetowej, obsługa modułu cieniującego pikseli DirectX. |
| 4.0 | 2010 | 4.0 | W porównaniu z 2010 | Nowe kontrolki: Kalendarz, DataGrid, DatePicker. Obsługa multidotyku i manipulacji. |
| 4.5 | 2012 | 4.5 | W porównaniu z 2012 | Szybsze uruchamianie, lepsza wydajność przy wyświetlaniu dużych zestawów danych. Nowa kontrolka Ribbon i interfejs INotifyDataErrorInfo do walidacji danych. |
| 4.5.1 | 2013 | 4.5.1 | W porównaniu z 2013 | Drobne ulepszenia wydajności i niezawodności. |
| 4.5.2 | 2014 | 4.5.2 | NA | Żadnych większych zmian |
| 4.6 | 2015 | 4.6 | W porównaniu z 2015 | Przezroczysta obsługa okien potomnych Ulepszenia HDPI i dotyku |
| 4.8 | 2019 | 4.8 | W porównaniu z 2019 | Ostatnia główna wersja .NET Framework z poprawkami dotyczącymi wysokiej rozdzielczości DPI i udoskonaleniami ułatwień dostępu. |
| .NET Core 3.0 i nowsze | 2019-obecny | .NET Core 3.0 do .NET 10 | VS 2019/2022 | WPF staje się oprogramowaniem typu open source i jest dostarczany z nowoczesnym .NET (aplikacje pozostają Windows-tylko). |
WPF nie jest już wersjonowany oddzielnie od .NET. Od 2019 roku jest udostępniany jako komponent open source nowoczesnej platformy .NET, a obecna wersja jest dołączona do .NET 10, który pojawił się w listopadzie 2025 roku jako wersja z długoterminowym wsparciem technicznym (LTS).
Funkcje WPF
Poniższy diagram grupuje główne możliwości WPF, wymienione szczegółowo poniżej.

- Dokumenty i drukowanie
- Bezpieczeństwo, dostępność i lokalizacja
- Zapewnia interoperacyjność z Windows Kontrolki formularzy
- Direct3D jest używany w aplikacjach graficznych, gdzie ważna jest wydajność
- Do renderowania wykorzystuje sprzęt karty graficznej
- Grafika wektorowa umożliwia skalowanie aplikacji bez utraty jakości
- WPF obsługuje logiczny system pikseli zmiennoprzecinkowych i 32-bitową paletę kolorów ARGB
- Zdefiniuj na nowo style i szablony kontrolek
- Budowanie międzynarodowych czcionek z czcionek złożonych
- Renderowanie tekstu WPF wykorzystuje technologię ClearType
- Umożliwia użycie techniki buforowania wstępnie renderowanego tekstu w pamięci wideo
- Podejście oparte na zasobach dla każdej kontroli
- Liczniki czasu prezentacji są inicjowane i zarządzane przez WPF
- Obsługiwana jest także relacja pomiędzy wideo i animacją
- W WPF styl to zestaw właściwości, które należy stosować do treści używanych do renderowania wizualnego
- Szablony w WPF pomagają zmienić interfejs użytkownika dokumentu
- Polecenia są bardziej abstrakcyjnetract i luźno powiązana wersja wydarzeń
- Obsługa poleceń WPF zmniejsza ilość kodu, który musimy napisać
Następny w tym WPF Samouczek C#, poznamy podstawowe typy i infrastrukturę WPF.
Typy rdzeni i infrastruktury WPF
Klasy w WPF są podzielone na cztery różne typy:
- Element UIE
- Element ramowy
- Element treści
- Element zawartości platformy
Klasy te nazywane są klasami elementów bazowych. Stanowią one podstawę modelu tworzenia interfejsów użytkownika.
Interfejsy użytkownika WPF składają się z elementów, które są ze sobą połączone w hierarchię drzewa zwaną drzewem elementów. Drzewo elementów to intuicyjny sposób układania interfejsów użytkownika i struktura, dzięki której można korzystać z zaawansowanych usług interfejsu użytkownika.
XAML
Extensible Application Markup Language, czyli „XAML” (wym. „zammel”), to deklaratywny sposób definiowania interfejsów użytkownika.
Oto definicja prostego przycisku w języku XAML:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Zalety korzystania z języka XAML:
- XAML oddziela wygląd front-endu od logiki back-endu
- XAML to najłatwiejsza metoda reprezentowania interfejsów użytkownika
- XAML efektywnie współpracuje z narzędziami projektowymi
Sterowniki
Struktura WPF obsługuje wiele przydatnych kontrolek, takich jak:
- Edytowanie elementów sterujących, takich jak TekstBox, SprawdzaćBox, Przycisk radiowy
- Kontrolki listy, takie jak ListaBox, ListView, TreeView
- Informacje o użytkowniku, takie jak etykieta, pasek postępu WPF, etykietka narzędzia
- Akcja, taka jak Menu, Przycisk i Pasek Narzędzi
- Wyglądy takie jak obramowanie, obraz WPF i pole widoku
- Typowe okna dialogowe, takie jak OpenFileDialog i PrintDialog
- Kontenery takie jak TabControl, ScrollBar i GroupBox
- Układy takie jak DockPanel, StackPanel i Grid
- Nawigacja, taka jak ramka i hiperłącze
Wygląd elementów sterujących można dostosować za pomocą stylów i szablonów bez konieczności programowania. Można również utworzyć formant niestandardowy, wyprowadzając nową klasę z odpowiedniej klasy bazowej.
Wygląd
WPF udostępnia funkcję dostosowywania wyglądu aplikacji. Umożliwia ustawianie obiektów i wartości takich jak czcionki, tła itp.
Funkcja stylów pozwala na ujednolicenie określonego wyglądu całego produktu. Umożliwia zastąpienie domyślnego wyglądu przy zachowaniu domyślnego zachowania.
Szablon danych pozwala kontrolować domyślną wizualizację powiązanych danych. Za pomocą motywów można łatwo zastosować style wizualne systemu operacyjnego.
Układ i panele
Układ pomaga w odpowiednim pozycjonowaniu i doborze rozmiarów elementów sterujących. Jest on częścią procesu tworzenia prezentacji dla użytkownika. Framework WPF ułatwia proces projektowania układu i zapewnia lepszą adaptowalność wyglądu interfejsu użytkownika.
Infrastrukturę układu oferuje pięć głównych klas: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid i 5) Canvas
Grafika
WPF zapewnia ulepszony system graficzny:
- WPF wykorzystuje jednostki niezależne od urządzenia, umożliwiając niezależność rozdzielczości i urządzenia. Każdy piksel niezależny od urządzenia automatycznie skaluje się zgodnie z ustawieniem systemu w punktach na cal.
- WPF używa typu double zamiast float i obsługuje szerszą gamę kolorów
- Silnik graficzny WPF został zaprojektowany w taki sposób, aby mógł wykorzystywać sprzęt graficzny, jeśli jest dostępny
Dokumenty i drukowanie
Framework WPF oferuje trzy typy dokumentów:
- Naprawione dokumenty: Ten typ dokumentu obsługuje WYSIWPrezentacja YG.
- Dokumenty przepływu: Umożliwia dostosowywanie i ponowne układanie zawartości na podstawie zmiennych czasu działania, takich jak rozmiar okna i rozdzielczość urządzenia.
- Dokumenty XPS: Stronicowana reprezentacja dokumentu elektronicznego w formacie opartym na XML. XPS to otwarty, znormalizowany format dokumentu.
WPF umożliwia lepszą kontrolę nad systemem drukowania, w tym nad drukowaniem zdalnym i kolejkami. Co więcej, dokumenty XPS można drukować bezpośrednio, bez konieczności konwertowania ich do formatu wydruku.
Skoro już omówiliśmy podstawowe elementy, zobaczmy, jak poszczególne części łączą się ze sobą.
WPF Architektura
WPF jest częścią platformy .NET. Zawiera zarówno kod zarządzany, jak i niezarządzany. Ważne komponenty architektury WPF są wyjaśnione na poniższym rysunku:
Komponenty architektury WPF
- Ramy prezentacji:Pomaga tworzyć elementy najwyższego poziomu, takie jak kontrolki, style, układ, okna itp.
- PrezentacjaCoreZawiera typy bazowe, takie jak UIElement i Visual, z których pochodzą wszystkie kontrolki i kształty w PresentationFramework.dll.
- CLR: Sprawia, że proces programowania jest produktywny, oferując funkcje takie jak zarządzanie pamięcią, obsługa błędów itp.
- Milcore: Milcore jest częścią niezarządzanego kodu, który zapewnia ścisłą integrację z DirectX.
- DirectX: To niskopoziomowy interfejs API, który renderuje grafikę WPF. DirectX współpracuje ze sterownikami i renderuje zawartość.
- Użytkownik32: To podstawowe API, szeroko wykorzystywane przez wiele programów. Zarządza pamięcią i separacją procesów. User32 pomaga zdecydować, który element zostanie umieszczony na ekranie.
- jądro: Dane wejściowe pochodzą z sygnału sterownika urządzenia w trybie jądra i są kierowane do właściwego procesu poprzez połączenie z Windows jądro i użytkownik32.
Wiązanie danych WPF
Wiązanie danych to jedna z najpotężniejszych koncepcji w WPF. Zamiast pisać kod, który ręcznie kopiuje wartości między kontrolkami i obiektami, deklarujesz połączenie w XAML, a WPF automatycznie synchronizuje obie strony. Na przykład:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF obsługuje cztery tryby wiązania:
- Jednokierunkowy: Kontrola jest aktualizowana po zmianie danych źródłowych
- Dwukierunkowy: Zmiana przepływu w obu kierunkach pomiędzy sterowaniem i źródłem
- Jednorazowo: Kontrolka odczytuje wartość źródłową tylko raz, w momencie ładowania
- Droga do źródła: Kontrola przekazuje swoją wartość do źródła, nigdy odwrotnie
Powiązanie danych jest również siłą napędową wzorca MVVM (Model-View-ViewModel), najpowszechniejszej architektury profesjonalnych aplikacji WPF, ponieważ pozwala, aby widok pozostawał w XAML, podczas gdy logika znajduje się w testowalnych klasach C#.
💡 Wskazówka: Zaimplementuj interfejs INotifyPropertyChanged w swoich klasach danych. Bez niego interfejs użytkownika nie odświeży się po zmianie wartości właściwości w kodzie.
Instalacja WPF
Aby zainstalować WPF, skorzystaj z tego łącza: https://www.guru99.com/download-install-visual-studio.html
W kolejnym samouczku dotyczącym aplikacji WPF zbudujemy naszą pierwszą aplikację WPF.
Jak stworzyć swoją pierwszą aplikację WPF?
W tym przykładzie WPF opracujemy podstawową aplikację WPF. Rozpocznijmy zatem prostą implementację, wykonując kroki podane w poniższym przykładzie aplikacji WPF.
Krok 1) W programie Visual Studio przejdź do Plik > Nowy > Projekt
Krok 2) W nowym oknie projektu
- Wybierz aplikację WPF
- Wprowadź nazwę jako „MyWPF”
- kliknij OK
Krok 3) Domyślnie program Visual Studio tworzy dwa pliki
- Plik XAML (MainWindow.xaml)
- Plik CS (MainWindow.xaml.cs)
Plik MainWindow.xaml ma
- Okno projektowania
- Plik XAML
W oknie XAML domyślnie zapisywane są następujące znaczniki:
Domyślnie pierwszym elementem jest Grid.
Plik MainWindow.xaml.cs zawiera odpowiedni kod źródłowy dla pliku projektu XAML:
Krok 4) W skrzynce z narzędziami,
- Przeciągnij tekstBox element do okna projektu
- TekstBox pojawi się w oknie projektu
- Zobaczysz kod XAML dla tekstuBox w dodatku
Krok 5) Zmień tekst na „Pierwszy program WPF”.
Krok 6) Kliknij przycisk Start
Krok 7) Na wyjściu zobaczysz okno
Gratulacje! Zaprojektowałeś i stworzyłeś swoją pierwszą aplikację WPF. W dalszej części tego samouczka dotyczącego WPF dla początkujących zobaczymy różnicę między WPF i WinForms.
WPF kontra WinForms
| WPF | WinFormy |
|---|---|
| Jest to nowszy framework, więc jest bardziej zgodny z obecnymi standardami. | Jest starszy, więc jest bardziej wypróbowany. |
| Jest elastyczny i bogaty w funkcje. Możesz projektować bardzo rozbudowane aplikacje bez kodowania i kupowania elementów sterujących. | Nie tak bogate w funkcje |
| Twórcy 3rd Kontrolki partycji skupiają się na kompatybilności z WPF, ponieważ jest to przyszłość. | Istnieje wiele kontroli innych firm, które można kupić lub otrzymać za darmo. |
| XAML pozwala na łatwe tworzenie i edycję graficznego interfejsu użytkownika (GUI). Pozwala to na podział pracy między projektanta (XAML) a programistę (C#, VB.NET itp.). | In Windows Formularze – cały kod jest napisany w jednym miejscu. |
| Umiejętności związane z XAML można bezpośrednio przenieść do nowszych frameworków, takich jak WinUI 3, .NET MAUI i Avalonia UI. | Umiejętności WinForms dotyczą głównie klasycznych Windows rozwój komputerów stacjonarnych. |
| Zestaw elementów sterujących w skrzynce odbiorczej WPF jest ograniczony | Elementy sterujące w pudełku są bardzo wydajne |
Typ aplikacji zbudowanych przy użyciu WPF
- WPF jest używany do samodzielnego Windows aplikacje desktopowe, takie jak narzędzia biznesowe, pulpity nawigacyjne, terminale handlowe i oprogramowanie do projektowania
- Windows Formularze i strony WPF mogą współistnieć w tej samej aplikacji
- Możesz tworzyć aplikacje w stylu nawigacji po stronach/oknach
WPF w nowoczesnym .NET
Microsoft udostępnił kod źródłowy WPF w grudniu 2018 r., a od czasu wydania .NET Core 3.0 (2019) struktura ta jest dostarczana z każdą nowoczesną wersją .NET, aż do .NET 10 włącznie. Przeniesienie aplikacji do nowoczesnej platformy .NET zapewnia szybsze uruchamianie, prostsze wdrażanie dzięki samodzielnemu publikowaniu i dostęp do bieżących funkcji języka C#, podczas gdy model programowania WPF pozostaje taki sam.
WPF pozostaje Windows-tylko. Jeśli wybierasz dziś platformę desktopową, to porównanie będzie pomocne:
| Najlepsze dla: | |
|---|---|
| WPF | Dojrzały, bogaty w funkcje Windows aplikacje desktopowe z ogromnym ekosystemem |
| WindowsUI 3 | Nowe aplikacje skierowane do nowoczesnych Windows 11 wygląd i styl |
| MAUI .NET | Aplikacje wieloplatformowe obejmujące Windows, macOS, Androidi iOS |
Ponieważ WPF jest aktywnie utrzymywany i głęboko osadzony w oprogramowaniu korporacyjnym, jego nauka pozostaje praktyczną inwestycją. Gdy już oswoisz się z tworzeniem tych aplikacji, warto przećwiczyć najczęstsze Pytania do rozmowy kwalifikacyjnej WPF aby utrwalić koncepcje takie jak XAML, wiązanie danych i drzewo wizualne.









