github builtbybel/Winslop 26.03.100
Winslop – WinUI3 Release IV

11 hours ago

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 All
    • Ctrl+Z – Undo last changes
    • F5 – Refresh
    • Ctrl+L – Copy log to clipboard
    • Delete – 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 OK
    • Plugins : X of Y OK
    • Total : 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 IsVisible state, so context menu actions (Analyze/Fix/Restore) now correctly skip hidden nodes
  • Log output now color-coded by severity using RichTextBlock and 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 to PluginManager so it mirrors FeatureNodeManager
  • [CRITICAL] UnhandledException + TaskScheduler.UnobservedTaskException handlers 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 MenuFlyoutItem handlers, no ComboBox dependency
  • Nav buttons theme-aware highlight via NavigationService.UpdateHighlight() so it reacts to live theme changes
  • ApplyFilter now iterates item.Children.ToList() snapshot to prevent collection-modified crashes
  • ApplySearch guards against _rootItems == null during page initialization
  • Analysis dialog now uses a StackPanel content with a HyperlinkButton instead of plain string

Removed

  • Log actions ComboBox (comboLogActions) is eplaced by flyout submenu
  • LogActionsController class 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 (IsVisible check added to AnalyzeFeature, 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, and AfterCheck
all handled imperatively in a few lines. WinUI 3 has no equivalent built-in tree node model,
requiring a full custom FeatureTreeItem ViewModel with INotifyPropertyChanged, XAML value converters,
a RichTextBlock-based logger, and a NavigationService to 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:

  • record types and init-only properties
  • Nullable reference types (string?, Button[]?)
  • Switch expressions (status switch { ... })
  • Target-typed new() and collection expressions
  • is not null pattern 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.

Winslop_JABE8Fe5DC

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

Don't miss a new Winslop release

NewReleases is sending notifications on new releases.