From 3174b8ee5f792e3a28c02f9b2b279f7e78ac841b Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 29 May 2026 00:22:19 +0200 Subject: [PATCH] Extend Light/Dark brushes to window, panes, menus, and input controls Build on the editor / toolbar scaffolding so the rest of the visible surface area swings with the active theme variant. Add brush pairs for the surfaces that previously inherited Simple's Light-only defaults or hardcoded fills: WindowBackground / WindowForeground -- the canvas behind everything PaneBackground -- the assembly tree DataGrid ChromeBorder -- the hairline borders in the options pages MenuBackground / MenuForeground -- inline menu bar, dropdowns, context menus, flyouts InputBackground / InputForeground / -- TextBox, ComboBox, ListBox InputBorder used across the Options dialogs and side panes SecondaryForeground -- the dimmed location / assembly labels in search results TreeAutoloadedForeground -- SteelBlue (autoloaded marker) TreeNonPublicForeground -- gray (non-public API marker) Wire them in via Style selectors against Window, DataGrid, Menu, MenuItem, ContextMenu, MenuFlyoutPresenter, TextBox, ComboBox / ComboBoxItem, and ListBox / ListBoxItem in App.axaml, plus the three remaining hardcoded BorderBrushes in OptionsPageView, DisplaySettings panel and the Foreground="Gray" instances in SearchPane. Three deliberate gaps remain on Dark: - Dock chrome (tab strip, splitters) -- needs Dock-specific theme brush keys which are a separate vendor surface. - Button / CheckBox / RadioButton fills -- Simple's defaults are legible against the new dark canvas; revisit if they look out of place in actual use. - The warning banner (UpdatePanel) keeps its yellow palette in both variants because the colour is semantic, not chrome. Dark palette continues the VS-style line: window #252526 pane #1E1E1E chrome border #3F3F46 menu #2D2D30 menu fg #DCDCDC input bg #3C3C3C input border #555555 Assisted-by: Claude:claude-opus-4-7:Claude Code --- ILSpy/App.axaml | 146 ++++++++++++++++++++++ ILSpy/AssemblyTree/AssemblyListPane.axaml | 4 +- ILSpy/Options/DisplaySettingsPanel.axaml | 2 +- ILSpy/Options/OptionsPageView.axaml | 2 +- ILSpy/Search/SearchPane.axaml | 4 +- 5 files changed, 152 insertions(+), 6 deletions(-) diff --git a/ILSpy/App.axaml b/ILSpy/App.axaml index 6d539b7f0..c1c3d74bb 100644 --- a/ILSpy/App.axaml +++ b/ILSpy/App.axaml @@ -11,6 +11,7 @@ xmlns:metaViews="using:ILSpy.Views" xmlns:dockTheme="using:Dock.Avalonia.Themes.Simple" xmlns:dockControls="using:Dock.Avalonia.Controls" + xmlns:aeFolding="using:AvaloniaEdit.Folding" xmlns:recycling="using:Avalonia.Controls.Recycling" xmlns:docking="using:ILSpy.Docking" xmlns:controls="using:ILSpy.Controls" @@ -41,6 +42,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -56,6 +79,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -118,6 +163,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ILSpy/Options/DisplaySettingsPanel.axaml b/ILSpy/Options/DisplaySettingsPanel.axaml index 66b4653b7..8de454662 100644 --- a/ILSpy/Options/DisplaySettingsPanel.axaml +++ b/ILSpy/Options/DisplaySettingsPanel.axaml @@ -25,7 +25,7 @@ Minimum="6" Maximum="72" Increment="1" Value="{Binding Settings.SelectedFontSize, Mode=TwoWay}" /> + BorderBrush="{DynamicResource ILSpy.ChromeBorder}" BorderThickness="1" Padding="6" Margin="0,2,0,0"> - +