WPF modernization in 2026 splits into two distinct problems: modernization-in-place (staying on WPF with .NET 10 LTS, Fluent theming, and AI tooling) and migration (leaving Windows-only for cross-platform reach). Microsoft is still shipping WPF (.NET 9 introduced the Fluent theme, .NET 10 LTS extended it, .NET 11 Preview 3 ships bug fixes) so "stay on WPF" remains a credible path, with the honest caveat that the framework is in maintenance mode rather than active feature growth. The right answer depends on what triggered the conversation, not on which framework markets best.
Modernization vs. Migration: Name What You Are Deciding
Most WPF teams arrive at this conversation with a vague brief from leadership: "modernize the desktop app." That brief covers two different projects.
Modernization in place is moving the existing WPF app forward on its current target: upgrade from .NET Framework (or end-of-life .NET versions) to .NET 10 LTS, adopt the new Fluent theme, integrate dark mode, plug in AI-assisted development tooling, and pay down architectural debt. The app remains Windows-only.
Migration is leaving Windows-only. New target platforms (macOS, Linux, iOS, Android, the browser), a new XAML dialect, often a new packaging and deployment story.
These projects have different scope, budget, risk, and reversibility. Naming which one you are doing is the first decision that matters.
The honest baseline: if the trigger is "WPF feels old," modernization-in-place is probably what you want. If the trigger is "a customer needs this on Mac," migration is on the table.
What Modernization-in-Place Actually Buys You in 2026
WPF is still being shipped, but the investment curve is flattening, and that should shape expectations.
- .NET 9: Fluent theme for Windows 11 aesthetics, light/dark
ThemeMode, Windows accent color support, hyphen-based ligature support.BinaryFormatterremoved for security. .NET 9 is not a viable target for new WPF modernization work in 2026. It is Standard Term Support and reaches end of support on November 10, 2026. Real WPF modernization projects take months to plan, execute, regression-test, and roll out. By the time most teams would land, .NET 9 would already be out of support. Default to .NET 10 LTS instead. - .NET 10: Extended Fluent style coverage (DatePicker, GridSplitter, GridView, GroupBox, Hyperlink, Label, NavigationWindow, RichTextBox, TextBox), unified clipboard API with WinForms, performance improvements. .NET 10 is the current LTS, supported until November 14, 2028. This is the version any 2026 modernization should target.
- .NET 11 Preview 3: Bug fixes only (DWM crash guard, Fluent backdrop fix on Windows 10, weak event table purge fix). No new WPF features in this preview.
The honest reading: WPF is supported and stable, but the trajectory across these three releases (significant theme work, then expanded theme work, then bug fixes) is consistent with a maintenance-mode framework. That is fine for stay-on-WPF; it does not make WPF a forward-looking strategic bet.
Microsoft also ships GitHub Copilot Modernization, an in-IDE agent that supports WPF as a first-class project type with upgrade paths from .NET Framework, .NET Core 1.x-3.x, and .NET 5+ into .NET 8 or later.
If your trigger is "WPF feels stuck in time," modernization-in-place is a real option in 2026.
When Migration Is the Right Call
Migration is justified when the trigger is one of:
- Reach. Customers, employees, or field staff need the app on macOS, Linux, iOS, Android, or the browser. WPF only runs on Windows.
- Deployment friction. MSIX, click-once, and per-machine installs are blocking adoption. Browser delivery via WebAssembly removes this entirely for many app categories.
- Talent and tooling. New hires expect modern tooling (Hot Reload, runtime designers, AI-assisted dev) on the same surface as the rest of their .NET stack.
- Strategic alignment. The app needs to share code with mobile or web tier, not just be a desktop client.
Note what is not on this list: "WPF is dying." It is not. Microsoft is still shipping WPF (see the maintenance-mode caveat above) and a stay-on-WPF path on .NET 10 LTS is supported through November 2028. If the trigger is vibes, modernize in place.
The Credible Cross-Platform Targets for 2026
| Target | XAML Proximity | Platforms | License | Best Fit |
|---|---|---|---|---|
| Stay on WPF | Identical | Windows only | OSS, ships with .NET | Modernization-in-place |
| WinUI 3 / Windows App SDK | Closest XAML descendant on Windows | Windows only | OSS | Windows-only modernization to forward-looking XAML |
| Uno Platform | Implements WinUI 3 API surface cross-platform | Windows, macOS, Linux, iOS, Android, WebAssembly | Apache 2.0 | Cross-platform with WinUI continuity + AI-assisted tooling |
| Independent cross-platform XAML | Independent dialect (similar concepts, different surface) | Variable (commonly all desktop + mobile + WASM) | OSS core, commercial tiers | Maximum WPF API compat (commercial fork) or full rewrite |
| .NET MAUI | Different (mobile-first lineage from Xamarin) | Android, iOS, macOS, Windows. No Linux. | OSS | Mobile-first apps where desktop is secondary |
Excludes Blazor Hybrid (different programming model) and Electron (abandons .NET as the UI layer). Both remain valid for specific cases but are rarely the right answer for a WPF team trying to preserve XAML and MVVM investment.
The Decision Tree
What is your trigger?
|
+-- "WPF feels old"
| |--> Modernize in place: .NET 10 LTS, Fluent theme,
| Copilot Modernization, AI dev tooling.
| Stay on WPF.
|
+-- "We need it on Windows + new XAML surface"
| |--> WinUI 3 / Windows App SDK
|
+-- "We need cross-platform reach"
| |
| +-- "Max WPF API compat is a hard requirement"
| | |--> Commercial WPF-compatible cross-platform fork
| |
| +-- "Cross-platform on a WinUI-aligned surface
| | + AI-assisted dev (MCPs, runtime verification)"
| | |--> Uno Platform
| |
| +-- "Independent dialect, full rewrite acceptable"
| | |--> Independent cross-platform XAML stack
| |
| +-- "Mobile is the primary target"
| |--> .NET MAUI (no Linux)
The trigger drives the decision. Optimize for the trigger, not for all axes.
AI-Assisted Development as a 2026 Buying Criterion
In 2026, the credible WPF-modernization story includes AI-assisted development as a first-class criterion. The reason is straightforward: 30 to 70 percent of mechanical migration work (namespace swaps, binding rewrites, control mapping) is now done by agents. Frameworks without an AI story are slower per-engineer-week.
The historical "migration is much more expensive than modernization" comparison no longer holds the way it did in 2022. Migration is still more expensive, but the gap has compressed because agents now absorb a large share of the mechanical translation work that used to dominate the cost. A migration that would have been a hard "no" on cost two years ago is often defensible today. See .NET Agent Skills and Migrate Your First WPF Screen with AI Agents for the pattern.
Three signals to evaluate per framework:
- Documentation MCP. Does the framework expose its docs to AI agents in a structured way? Uno Platform ships an official Uno Platform MCP. Microsoft ships an MS Learn MCP covering WinUI/.NET.
- Runtime MCP. Can an agent inspect the running app's visual tree and verify its own output? Uno Platform ships the App MCP for this purpose.
- First-party migration agent. GitHub Copilot Modernization supports WPF, WinUI, MAUI, Blazor, WinForms, and class libraries.
Honest Tradeoffs You Should Price In
No 2026 option is dominant on every axis. The points below are facts the comparison spreadsheet usually omits.
- No cross-platform target is fully drop-in for WPF. Namespace and binding changes are mechanical, control parity is largely intact for standard controls, and MVVM transfers unchanged. What needs real work in every case: commercial control suites, custom templates, platform-specific code (P/Invoke, screen capture, hotkeys, shell integration), and advanced WPF document features.
- Most WPF apps are forms-over-data without a clean service layer. This shows up in every cross-platform business case. Sharing ViewModels and XAML with iOS, Android, or the browser depends on first extracting the data-access layer that today sits directly behind the UI. Budget for that work explicitly; it is not free, and it is not optional.
- Skia is the modern default for cross-platform XAML rendering. The cross-platform XAML category as a whole has converged on this architecture for visual consistency across operating systems.
- Free at the framework layer is the category baseline. Uno Platform: Apache 2.0. Permissive OSS licenses dominate. The honest comparison is at the commercial tooling tier, where Uno Platform Studio Pro is $39/month per developer.
- Microsoft's XAML history is real, but so is its present. Silverlight reached end of support on October 12, 2021. UWP was reframed as WinUI. WinUI 3 has been the stable, supported Windows desktop UX framework since 2021. WPF is still being shipped, in maintenance mode, on the .NET 10 LTS train. The Microsoft XAML stack in 2026 is the most stable it has been in a decade, and the active center of gravity has clearly moved off WPF.
What to Do This Week
If you have a WPF team and a vague modernization mandate, do three things this week:
- Name the trigger. "WPF feels old" vs. "we need this on Mac" vs. "we need browser delivery" vs. "we need mobile" vs. "we need to retain commercial control suite X." The trigger picks the framework, not the other way around.
- Run a 2-week pilot on one screen. Do not commit to a framework before porting one representative screen end-to-end. Use the agentic loop. Measure effort honestly.
- Verify the AI-assisted-dev criterion. If your team will use Copilot, Claude, or Cursor for the migration, the framework needs to expose docs and runtime via MCPs. Confirm this before committing.
Start a free trial of Uno Platform Studio Pro to get access to the App MCP (runtime visual tree inspection and verification) alongside the Docs MCP, then pick one non-trivial WPF screen and port it end-to-end. For pre-pilot scoping, see How to Scope a WPF Migration. The agentic-dev pattern is in Migrate Your First WPF Screen with AI Agents.
- WPF on .NET 9 (Microsoft Learn) →
- WPF on .NET 10 (Microsoft Learn) →
- WPF on .NET 11 Preview 3 →
- .NET Lifecycle Page →
- WPF Overview (Microsoft Learn) →
- WinUI 3 (Microsoft Learn) →
- .NET MAUI Installation →
- GitHub Copilot Modernization →
- BinaryFormatter WPF Migration Guide →
- .NET Agent Skills →
- Migrate Your First WPF Screen with AI Agents →
- How to Scope a WPF Migration →
- Uno Platform MCP Servers →
- Uno Platform Studio →
- Uno Platform for WPF Developers →
Subscribe to Our Blog
Subscribe via RSS
Back to Top