microsoft / microsoft/PowerToys
Workspaces Launcher UI: WPF → WinUI Migration
@chatasweetie is already working on this.
Since Jun 16, 2026.
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
## Summary
Migrate the Workspaces Launcher UI from WPF to WinUI to support PowerToys' broader modernization efforts around Fluent design, theming consistency, accessibility, and long-term maintainability.
This work focuses specifically on the **Workspaces Launcher UI** and does **not** include changes to the Workspaces Editor, workspace configuration model, launch logic, or feature development.
---
## Motivation
Migrating this to WinUI improves:
- Consistent Fluent design across PowerToys
- Accessibility support
- Light/Dark theme handling
- Long-term maintainability
---
## Scope
### In Scope
- Migrate Workspaces Launcher UI from WPF to WinUI 3
- Recreate existing launcher window UI
- Preserve existing functionality and visual behavior
- Preserve current launch workflow
- Verify accessibility parity
- Verify Light/Dark theme support
- Remove launcher-specific WPF UI assets once migration is complete
### Out of Scope
- Workspaces Editor migration
- Workspace launch engine changes
- New features
- UX redesigns
- Telemetry changes
- Configuration format changes
---
## Testing
### Functional
- Launch workspace successfully
- Progress/status updates display correctly
- Error states render correctly
- Window lifecycle behaves as expected
- Multiple launch scenarios function correctly
### Accessibility
- Keyboard-only navigation
- Narrator validation
- Focus management validation
- High contrast support
### Visual
- Light theme
- Dark theme
- Multiple DPI scales
- Multiple monitor configurations
---
## Success Criteria
- Workspaces Launcher UI runs entirely on WinUI
- Functional parity maintained
- Accessibility parity maintained or improved
- Light/Dark themes work correctly
- Launcher-specific WPF UI removed
- No regressions introduced
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.