Tree-node selection now updates the inner Content of one persistent
ContentTabPage instead of swapping the dockable in the dock. The
wrapper view (ContentTabPageView) keeps both inner views — the
decompiler text editor and the metadata grid — pre-realised in the
visual tree from construction time and toggles which is visible based
on Content's runtime type.
Assisted-by: Claude:claude-opus-4-7:Claude Code
Lays the rails for Phase 2 without flipping any existing nodes onto the
new path: MetadataTablePageModel + MetadataTablePage view +
MetadataColumnBuilder (cached per row type), an ILSpyTreeNode.CreateTab()
hook the docking host now consults before falling through to the
decompiler tab, and an App.axaml DataTemplate routing the model to the
view. PE-header / heap / table nodes still decompile as text — they get
flipped to CreateTab() one batch at a time in subsequent commits.
Assisted-by: Claude:claude-opus-4-7:Claude Code
Selecting a node in the assembly tree now opens (or refocuses) a
DecompilerTabPageModel document tab and renders the C# decompilation in
an AvaloniaEdit TextEditor with XSHD-driven syntax highlighting.
Assisted-by: Claude:claude-opus-4-7:Claude Code
Restyles ProDataGrid's hierarchical presenter so the assembly tree feels
like the WPF SharpTreeView:
- 9x9 +/- expander box with the gradient fill and Path glyph from
ILSpy/Controls/TreeView/SharpTreeView.xaml, hidden via opacity on
leaves so column widths stay aligned
- LinesRenderer ported as TreeLines, drawn behind the indent/expander
via an override of the presenter's ControlTemplate
- cell focus rectangle, gray pointer-over highlight, and dark text on
selected rows all suppressed
Assisted-by: Claude:claude-opus-4-7:Claude Code
The Fluent theme combined with the Inter font made the app feel like a
modern UWP/WinUI surface, not the WPF/native Windows look the project
wants. Switching to Avalonia's Simple theme (and Dock's matching
DockSimpleTheme + DataGrid Simple.v2.xaml) gives flatter chrome with
denser default control padding. Dropping WithInterFont() lets Avalonia
fall back to the OS font (Segoe UI on Windows).
Assisted-by: Claude:claude-opus-4-7:Claude Code
Replaces the temporary 3-column Grid placeholder in MainWindow with a
Dock.Avalonia DockControl driven by an ILSpyDockFactory and orchestrated
by a [Shared] DockWorkspace exported via MEF.
Assisted-by: Claude:claude-opus-4-7:Claude Code