Previously built on WinForms now fully rewritten in WinUI 3 (.NET 10). This release marks a significant architectural departure from the Winslop WinForms / .Net Framework version (Legacy). Approximately 50% of the codebase was rewritten from scratch and not just ported.
🚀 Winslop – WinUI3 Release IV
"I told myself I'd stop after Release III. I lied."
So here we are. Release IV.
If you've been following this project, you already know the drill.
If you're new: welcome to the most overthought Windows tweaker on GitHub 😄
Release III was the one where I finally felt like I understood WinUI 3. Release IV is the one where I actually did something useful with that understanding.
The community poll is still sitting at a near-perfect 50:50.
The Microsoft emails keep coming.
I still havent picked a side.
But I did rewrite about 50% of the codebase, so make of that what you will.
🗳 Still haven't voted? Now's the time:
#36
Whats new?
Added
- Keyboard shortcuts for all major menu actions:
Ctrl+T– Toggle AllCtrl+Z– Undo last changesF5– RefreshCtrl+L– Copy log to clipboardDelete– Clear log
- Zoom support for the Home page > Feature tree (
Ctrl+Scroll). So WinUI 3 controls carry significantly more padding and spacing than their WinForms equivalents; a ZoomMode was added as a practical workaround to let users reclaim vertical space on smaller screens - Context menu on right-click for individual tree nodes: Analyze, Fix, Restore, Help
- Plugin analysis now included in the combined analysis summary dialog
- Combined analysis summary after full inspection showing native features and plugins separately:
Windows Features : X of Y OKPlugins : X of Y OKTotal : X of Y OK
- Hyperlink to Online Log Inspector directly in the analysis result dialog
- "No plugins selected" message in log when plugin analysis is skipped
- Profile ComboBox with built-in Export, Import, and "Open profiles folder" actions
- [CRITICAL] Search filter respects
IsVisiblestate, so context menu actions (Analyze/Fix/Restore) now correctly skip hidden nodes - Log output now color-coded by severity using
RichTextBlockand not TextBox- 🔴 Red – Errors
- 🟠 Orange – Warnings
- Gray – Info (theme-sensitive via
TextFillColorPrimaryBrush)
- Nav highlight auto-refreshes on Windows light/dark theme switch
- Per-page menu state: Export, Import, Undo, Manage Plugins disabled on non-Features pages
- More options flyout button (
⋯) replaces separate Toggle/Undo/Refresh buttons and old log actions ComboBox - Log actions submenu under More options: Inspect online, Copy, Clear, Log checked/unchecked/summary
- Plugin counters (
TotalChecked,IssuesFound) added toPluginManagerso it mirrorsFeatureNodeManager - [CRITICAL] UnhandledException +
TaskScheduler.UnobservedTaskExceptionhandlers to prevent silent crashes
Improved
- Analysis summary moved to end of log (after dialog closes) so auto-scroll always lands at the bottom
- More options menu replaces three separate icon buttons. Should bring a cleaner toolbar, less visual noise
- LogActionsController removed and actions are now wired directly as
MenuFlyoutItemhandlers, no ComboBox dependency - Nav buttons theme-aware highlight via
NavigationService.UpdateHighlight()so it reacts to live theme changes ApplyFilternow iteratesitem.Children.ToList()snapshot to prevent collection-modified crashesApplySearchguards against_rootItems == nullduring page initialization- Analysis dialog now uses a
StackPanelcontent with aHyperlinkButtoninstead of plain string
Removed
- Log actions ComboBox (
comboLogActions) is eplaced by flyout submenu LogActionsControllerclass is no longer needed- Separate Toggle All / Undo / Refresh buttons is consolidated into More options flyout
- Intermediate analysis dialog shown before plugin analysis are replaced by single combined dialog after both complete
Fixed
- Context menu Analyze/Fix/Restore now respects active search filter (
IsVisiblecheck added toAnalyzeFeature,FixFeature,RestoreFeature) - Plugin nodes correctly skipped during native feature analysis and vice versa
- Summary log entry no longer appears before plugin results
Migration note
WinForms allowed direct, compact tree manipulation via
TreeNode.ForeColor,NodeFont, andAfterCheck–
all handled imperatively in a few lines. WinUI 3 has no equivalent built-in tree node model,
requiring a full customFeatureTreeItemViewModel withINotifyPropertyChanged, XAML value converters,
aRichTextBlock-based logger, and aNavigationServiceto replicate what was previously trivial.Additionally, this project served as a hands-on migration from C# 7.3 to C# 14
adopting modern patterns including:
recordtypes andinit-only properties- Nullable reference types (
string?,Button[]?)- Switch expressions (
status switch { ... })- Target-typed
new()and collection expressionsis not nullpattern matching- Top-level using directives and file-scoped namespaces
For anyone coming from the WinForms version: the concepts are the same,
the implementation is almost entirely new.
Technical notes
• Fully rebuilt UI: WinUI 3 (Windows App SDK 1.8)
• Migrated from .NET Framework 4.8 (WinForms) to .NET 10 (Preview)
• Mica backdrop, page-cached navigation, MVVM TreeView, plugin manager
• Portable: No installer needed, just unzip and run
Included in the package:
• Winslop.exe (main app)
• Compiled XAML pages (*.xbf)
• Plugins folder (optional)
• .NET 10 runtime (self-contained, no install required)
• Only English language resources
• No MSIX/Store assets
Requirements:
• Windows 10/11 (1809 or newer)
• Windows App SDK Runtime (may need to be installed once)
• No .NET installation needed
• Windows App SDK DLLs (UI framework) needed
Release package:
Winslop-26.03.100.zip
The classic WinForms version is available as a legacy asset Winslop-26.3.31-legacy.zip for download.
The program folder now also includes Winslop.Legacy.exe if you still want to enjoy the classic version