Previously built on WinForms now fully rewritten in WinUI 3 (.NET 10).
This release is a pretty hard break from the old Winslop WinForms / .NET Framework legacy build.
This wasnt a lazy port, a paint job, or one of those "internally modernized" updates nobody notices. Around 50% of the codebase was rewritten from scratch. Because apparently I enjoy making my life harder. Genius move š¤¦āāļø
š Winslop ā WinUI3 Final release
"I told myself I'd stop after 4ā5 releases. That turned out to be absolute nonsense"
So yeah, here we are: the final WinUI 3 release of Winslop.
If you've been following the project, you already know the pattern.
If youre new here: welcome to probably the most unnecessarily overengineered Windows tweaker on GitHub š
Release III was the point where I finally felt like I understood WinUI 3.
Release IV is where I actually managed to do something useful with that knowledge. And now I've got something that genuinely works pretty well. Whether I personally like it yet is another story. I'll probably need a little more time to get used to it
As for the legacy Winslop version, I wrote more about that here: #36 (comment)
That version isnt dead. It'll still get new feature toggles here and there
But as things stand right now, it probably wont get the bigger stuff that made it into this branch, like localization, dark mode, and other actually modern features. At some point I have to go along with where Windows is heading, otherwise I'll just get left behind.
You guys probably know the feeling.
The community poll is still ongoing, and right now the modern version is slightly ahead with 51% vs 48%.
I'm keeping the poll open because Iām genuinely curious to see whether that 48% will shift over time and maybe, under the right circumstances, end up giving the modern version a chance after all.
The Microsoft emails are still coming in.
And I did rewrite about half the app, so make of that what you will.
š³ Haven't voted yet? There's still time:
Join the poll
Whats new?
Not everything made it into this listm, mostly because I lost track
Added
- Full app localization with support for English, German, and French
For translators:LOCALIZATION.md - 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 - Language-independent profile matching for feature tree selections
- Built-in AI Panic Mode profile for quickly disabling Windows AI-related features
- WINSLOP_SELECTION_V2 Changed the selection export format and added a stable profile selection format based on internal feature IDs and plugin file IDs
- Reworked Settings page with centralized extension management
- 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 - Improved profile import/export so selections no longer depend on localized feature or category names
- Improved plugin profile handling by using the plugin script filename as a stable identifier
- Improved extension discoverability by separating native Feature Tree plugins from tool scripts in Settings
- Improved accessibility for international users with a fully localized UI across three languages
- Changed the Settings page structure to manage extensions in a more native and unified way
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
- Removed support for the old path/name-based selection format
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.120.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