Definicja #
WPF (Windows Presentation Foundation) to framework Microsoftu do tworzenia aplikacji desktopowych z rozbudowanym interfejsem graficznym na platformie Windows. Udostępniony jako część .NET Framework 3.0 (2006), zastąpił starsze technologie Windows Forms i MFC.
Kluczowe cechy WPF:
- XAML (Extensible Application Markup Language) — deklaratywny język XML do opisywania UI; oddzielenie warstwy wizualnej od logiki; narzędzia do projektowania: Visual Studio XAML Designer, Blend for Visual Studio
- Data Binding — silny system wiązania danych między UI (XAML) a ViewModelami; INotifyPropertyChanged, ObservableCollection, MVVM pattern
- MVVM (Model-View-ViewModel) — popularny wzorzec architektoniczny dla WPF; separacja logiki prezentacji (ViewModel) od widoku (XAML)
- DirectX rendering — WPF renderuje UI przez DirectX (nie GDI jak WinForms); sprzętowe przyspieszenie animacji, efektów i transformacji
- Style i Szablony — Style (wygląd kontrolek), ControlTemplate (pełna redefinicja wyglądu), DataTemplate (szablony danych)
- Animations i Visual States — deklaratywne animacje w XAML; Storyboard, VisualStateManager
- Layout System — Grid, StackPanel, WrapPanel, DockPanel; elastyczne rozmieszczanie elementów
WPF w 2026 roku: WPF działa na .NET Framework 4.x i .NET 6+ (Windows only). Microsoft portuje go na .NET — jest aktywnie utrzymywany, ale nie otrzymuje nowych funkcji. Nowe projekty desktopowe Windows mogą rozważyć WinUI 3 (część Windows App SDK) jako nowoczesną alternatywę — to odrębna technologia od wieloplatformowego .NET MAUI.
Zastosowania #
- Aplikacje biznesowe desktopowe Windows — systemy wewnętrzne (ERP, CRM, narzędzia operacyjne) wymagające bogatego UI i dużej wydajności renderowania
- Dashboardy i aplikacje do wizualizacji danych — wykresy, kontrolki grid, widoki tabelaryczne z dużą ilością danych
- Narzędzia deweloperskie i inżynierskie — IDE, narzędzia CAD, aplikacje diagnostyczne z zaawansowanym UI
- Migracja z Windows Forms — modernizacja starszych aplikacji WinForms do WPF z MVVM
- Aplikacje multimedialne Windows — odtwarzacze, edytory grafiki korzystające z MediaElement i DirectX
Ścieżka nauki #
WPF jest kluczową technologią dla deweloperów aplikacji desktopowych Windows — XAML i MVVM to fundamentalne koncepcje tego ekosystemu.
Zacznij od:
- Podstawy XAML: elementy, atrybuty, namespace, code-behind
- Kontrolki WPF: Button, TextBox, ListBox, DataGrid, ComboBox, TreeView
- Layout: Grid (wiersze, kolumny), StackPanel, DockPanel — układy elementów
- Data Binding: Binding w XAML, INotifyPropertyChanged, DataContext
Następnie pogłębiaj:
- MVVM: ViewModel, RelayCommand (ICommand), biblioteki MVVM Toolkit (Microsoft), Prism, Caliburn.Micro
- Style i ControlTemplate — customizacja wyglądu kontrolek; ResourceDictionary
- Biblioteki UI: Mahapps.Metro, HandyControl, Syncfusion WPF — gotowe komponenty
- Animacje: Storyboard, DoubleAnimation, Triggers w XAML
- Porównaj z WinUI 3 i .NET MAUI — nowoczesne alternatywy dla nowych projektów desktop Windows
FAQ #
- Czym różni się WPF od Windows Forms?
- Windows Forms (WinForms) to starszy framework desktopowy oparty na GDI+ — prostszy w nauce, ale ograniczony wizualnie. WPF używa DirectX do renderowania, obsługuje XAML, style, animacje i wzorzec MVVM — znacznie bardziej elastyczny i nowoczesny. WPF jest lepszym wyborem dla złożonych aplikacji; WinForms może wystarczyć dla prostych narzędzi.
- Czy WPF działa na .NET 6/7/8?
- Tak — WPF został portowany na .NET Core 3.0 i działa na .NET 5/6/7/8/9. Jednak działa tylko na Windows (nie jest wieloplatformowy). Microsoft aktywnie utrzymuje WPF na .NET, ale nie dodaje nowych funkcji — głównie poprawki błędów i poprawki wydajności. Kod WPF można migrować z .NET Framework 4.x na .NET 6+ za pomocą .NET Upgrade Assistant.
- Co to jest MVVM i dlaczego jest ważny w WPF?
- MVVM (Model-View-ViewModel) to wzorzec architektoniczny idealnie dopasowany do WPF dzięki systemowi Data Binding. View (XAML) wiąże się z ViewModelem przez Binding — ViewModel nie zna View, co ułatwia testowanie i utrzymanie. Biblioteki ułatwiające MVVM: Microsoft MVVM Toolkit (CommunityToolkit.Mvvm), Prism, Caliburn.Micro.
- Jakie są nowoczesne alternatywy dla WPF?
- WinUI 3 (część Windows App SDK) — nowoczesny framework UI dla Windows 10/11 z Fluent Design; zastępca UWP i lepsza alternatywa dla WPF w nowych projektach. .NET MAUI — wieloplatformowy (Windows, macOS, iOS, Android) z widokami XAML podobnymi do WPF. Avalonia — open-source, wieloplatformowy (Linux, macOS, Windows) framework z XAML bardzo podobnym do WPF.