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.

  • 🧭 Foundation: WPF to oparta na wektorach, oparta na DirectX struktura interfejsu użytkownika dla platformy .NET.
  • 🎨 Znaczniki XAML: Deklaratywna składnia XML oddziela projektowanie interfejsu od logiki biznesowej języka C#.
  • 🧱 Archistruktura: PresentationFramework, PresentationCore i Milcore współpracują ze sobą przy renderowaniu w oparciu o DirectX.
  • 🔗 Wiązanie danych: Wbudowane powiązanie łączy kontrolki ze źródłami danych i obsługuje wzorzec MVVM.
  • 🛠️. Rozpoczęcie praktyczne: Szablony programu Visual Studio umożliwiają utworzenie i uruchomienie pierwszej aplikacji WPF w siedmiu krokach.
  • 🚀 Nowoczesne znaczenie: WPF jest rozwiązaniem typu open source i jest dostarczane z platformą .NET 10 w ramach długoterminowego wsparcia.

Samouczek WPF dla początkujących

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.

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

WPF Architektura

WPF Architektura

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

Menu Plik programu Visual Studio z opcją Nowy projekt

Krok 2) W nowym oknie projektu

  1. Wybierz aplikację WPF
  2. Wprowadź nazwę jako „MyWPF”
  3. kliknij OK

Nowe okno projektu z wybranym szablonem aplikacji WPF

Krok 3) Domyślnie program Visual Studio tworzy dwa pliki

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

Eksplorator rozwiązań pokazujący pliki MainWindow.xaml i MainWindow.xaml.cs

Plik MainWindow.xaml ma

  1. Okno projektowania
  2. Plik XAML

Okno projektu MainWindow.xaml i edytor XAML w programie Visual Studio

W oknie XAML domyślnie zapisywane są następujące znaczniki:

Domyślne znaczniki XAML wygenerowane dla nowego okna WPF

Domyślnie pierwszym elementem jest Grid.

Plik MainWindow.xaml.cs zawiera odpowiedni kod źródłowy dla pliku projektu XAML:

Plik kodu MainWindow.xaml.cs dla okna WPF

Krok 4) W skrzynce z narzędziami,

  1. Przeciągnij tekstBox element do okna projektu
  2. TekstBox pojawi się w oknie projektu
  3. Zobaczysz kod XAML dla tekstuBox w dodatku

Przeciąganie tekstuBox z przybornika do okna projektowania WPF

Krok 5) Zmień tekst na „Pierwszy program WPF”.

Edycja tekstuBox właściwość tekstu do pierwszego programu WPF

Krok 6) Kliknij przycisk Start

Przycisk Start programu Visual Studio umożliwiający uruchomienie aplikacji WPF

Krok 7) Na wyjściu zobaczysz okno

Okno uruchomionej aplikacji WPF pokazujące tekst „Pierwszy program WPF”

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.

FAQ

Potrzebujesz języka XAML do projektowania interfejsu i języka C# (lub VB.NET) do logiki aplikacji. Podstawowa znajomość programowania obiektowego i biblioteki klas .NET znacznie ułatwia naukę WPF.

Nie. WPF zależy od DirectX i Windows API, więc działa tylko na WindowsW przypadku tworzenia kodu XAML na wielu platformach należy wziąć pod uwagę Interfejs użytkownika Avalonia or MAUI .NET.

Tak. Narzędzia takie jak Drugi pilot GitHub może generować układy XAML, wyrażenia wiążące i style z komentarzy, co przyspiesza naukę i redukuje konieczność powtarzania znaczników u początkujących.

Możesz się zintegrować ML.NET do lokalnego uczenia maszynowego lub usług sztucznej inteligencji w chmurze, takich jak Azure Otwórz AI z kodu C#, a następnie wyświetl wyniki za pomocą standardowego powiązania danych WPF.

Tak. WPF jest oprogramowaniem typu open source udostępnianym na licencji MIT, a tworzenie aplikacji za pomocą programu Visual Studio Community Edition jest bezpłatne.

Podsumuj ten post następująco: