-
-
Notifications
You must be signed in to change notification settings - Fork 141
Home
WPF HexEditor is a full binary analysis IDE for Windows built entirely with WPF and .NET 8.0. Think Visual Studio for binary files — with a VS-style docking engine, a plugin system, an integrated terminal, a XAML visual designer, and a powerful hex editor control at its core.
flowchart LR
subgraph IDE["WpfHexEditor IDE v0.6.0"]
App["IDE Application\nWpfHexEditor.App"]
Editors["10 Editors\nHex · Code · XAML Designer · Text\nTBL · JSON · Image · Entropy\nDiff · Structure"]
Panels["15+ Panels\nSolution Explorer · Terminal\nAssembly Explorer · NuGet Manager\nPlugin Manager · Plugin Monitoring · ..."]
Plugins["Plugin System\nSDK + PluginHost\n12+ first-party plugins"]
end
Control["Standalone HexEditor Control\nembeddable in any WPF app"]
App --> Editors
App --> Panels
App --> Plugins
IDE -.->|reuses| Control
| Getting Started | Clone, build and run the IDE in minutes |
| Architecture | Complete IDE + control architecture with Mermaid diagrams |
| ↳ Docking Engine | XAML setup, layout persistence, panel registration |
| ↳ Project System |
.whsln / .whproj / VS .sln, ISolutionLoader, build system |
| ↳ Editor Registry |
IDocumentEditor contract, format-aware editor selection |
| ↳ ContentId Routing | Tab & panel ID mapping, duplicate prevention |
| Plugin System | Build your own plugin with the SDK |
| Terminal | 31+ commands, scripting, plugin API |
| Plugin Monitoring | Real-time CPU/memory charts per plugin |
| ByteProvider | Virtual view, PositionMapper, undo/redo, smart save |
| Rendering Engine | DrawingContext pipeline, 99% faster than V1 |
| Search Architecture | LRU cache, Boyer-Moore, SIMD, parallel search |
| API Reference | HexEditor control public API |
| FAQ | Frequently asked questions |
| Contributing | How to contribute |
| Feature | Description |
|---|---|
| VS-Style Docking | Float, dock, auto-hide, colored tabs — 100% in-house (WpfHexEditor.Shell), 8 themes |
| Project System |
.whsln / .whproj, VS .sln / .csproj, open-folder mode, format migration |
| Build System |
IBuildAdapter + MSBuild/dotnet CLI adapter plugin, build configs, error panel integration |
| Plugin System |
IWpfHexEditorPluginV2, .whxplugin packages, hot-unload, permissions |
| Terminal | 31+ built-in commands, HxScriptEngine, mode badge, session export |
| Plugin Monitoring | Per-plugin CPU% + memory charts, PerformanceCounter + GC, 1 s polling |
| 400+ Format Detection | Format-aware editor routing, EmbeddedFormatCatalog
|
| Inline Search |
Ctrl+F quick bar + Ctrl+Shift+F advanced (Hex/Text/Regex/TBL/Wildcard) |
| Options | VS-style settings tab — theme, display, editing, behavior, plugins |
| 8 Themes | Dark · Light · VS2022Dark · DarkGlass · Minimal · Office · Cyberpunk · VisualStudio |
| NuGet Manager | Solution-level NuGet package manager (Browse / Installed / Consolidate / Updates) |
| Assembly Explorer | .NET PE inspection, decompilation (C# skeleton + IL), type hierarchy |
| Shared Undo Engine | Coalescing undo (500 ms), transactions, save-point tracking across all editors |
| Editor | Progress | Notes |
|---|---|---|
| Hex Editor | ~75% | Insert/overwrite, 400+ formats, TBL, search, bookmarks |
| Code Editor | ~90% | Navigation bar, Inline Hints, Ctrl+Click, rect selection, UndoEngine, #region, Quick Info |
| XAML Designer | ~70% | Split-pane live canvas, bidirectional sync, adorners, snap, 9 panels, overkill undo |
| Text Editor | ~50% | Encoding support, rect selection, drag-to-move |
| TBL Editor | ~60% | Character table editor for ROM hacking |
| JSON Editor | ~65% | Live validation, diagnostics to Error Panel |
| Image Viewer | ~30% | Zoom/pan, rotate/flip/crop/resize pipeline |
| Entropy Viewer | ~25% | Entropy graph for binary analysis |
| Diff Viewer | ~20% | Binary diff between two files |
| Structure Editor | ~30% |
.whfmt binary template editor |
| Panel | Progress |
|---|---|
| Parsed Fields | ~75% |
| Data Inspector (40+ types) | ~65% |
| Solution Explorer | ~75% |
| Properties Panel | ~60% |
| Error Panel | ~70% |
| Output Panel | ~65% |
| Terminal Panel | ~70% |
| Plugin Manager | ~65% |
| Plugin Monitoring | ~60% |
| Assembly Explorer | ~75% |
| NuGet Solution Manager | ~70% |
| XAML Toolbox | ~60% |
| XAML Resource Browser | ~50% |
| XAML Design History | ~65% |
| Quick Search Bar | ~55% |
| Advanced Search | ~45% |
The WpfHexEditor.HexEditor UserControl can also be embedded in any WPF application without the IDE:
-
99% faster rendering — custom
DrawingContextvs legacy ItemsControl - 10-100x faster search — LRU cache + Boyer-Moore + SIMD + parallel multi-core
-
80-90% less memory —
Span<T>+ArrayPool - 21 specialized services — MVVM, 100% testable
- 19 languages — instant runtime switching
- Handles files from bytes to gigabytes
-
Shared Undo/Redo Engine —
UndoEngineinEditor.Core.Undo: coalescing (500 ms), transactions, save-point tracking, replaces both editors' custom stacks -
XAML Visual Designer — split-pane live canvas, bidirectional XAML↔canvas sync (~95%), 5 adorners, snap, zoom/pan, alignment (12 ops), 9 VS-like panels, 30
XD_*brush tokens, overkill undo/redo - XAML Designer Layout Modes — 4 split layouts (HorizontalDesignRight/Left, VerticalDesignBottom/Top), Ctrl+Shift+L cycle, persisted
- Code Editor ~90% — navigation bar, Inline Hints, Ctrl+Click go-to-definition, Quick Info (hover), bracket highlight, rect selection (Alt+Click), text drag-to-move, #region colorization, URL hover, word highlight, scope guides, scroll markers, split view
- Rect Selection + Drag-to-Move — Alt+Click rect selection, text drag-to-move in Code Editor & Text Editor
-
WpfHexEditor.Shell — docking engine renamed from
WpfHexEditor.Docking.Wpf; 8 themes, VS-style chrome -
VS Solution Support —
SolutionLoader.VSplugin (priority 90): open.sln/.csprojfiles, 4 project templates -
Open-Folder Mode —
SolutionLoader.Folderplugin (priority 85):.whfolderJSON marker, gitignore-aware -
Build System —
IBuildAdapter+Build.MSBuildplugin (dotnet buildCLI), build configs, error panel integration - NuGet Solution Manager — solution-level NuGet panel: Browse/Installed/Consolidate/Updates
- Assembly Explorer — .NET PE inspection, C#/IL decompilation, type hierarchy, icon badges, lock badges
-
Synalysis Grammar Support —
WpfHexEditor.Plugins.SynalysisGrammar(priority 45), UFWB grammar,IGrammarProvider -
File Locking & External Change Detection —
FileShare.ReadWrite+ 500 ms debounce watcher, auto-reload
See CHANGELOG for full history.
git clone https://github.com/abbaye/WpfHexEditorIDE.gitOpen WpfHexEditorControl.sln → set WpfHexEditor.App as startup → F5.
Embed the control in your own WPF app:
<ProjectReference Include="..\WpfHexEditor.Core\WpfHexEditor.Core.csproj" />
<ProjectReference Include="..\WpfHexEditor.HexEditor\WpfHexEditor.HexEditor.csproj" /><hex:HexEditor FileName="data.bin" />The V1 NuGet package (
WPFHexaEditor) remains available but is no longer maintained. V2 targets .NET 8.0-windows exclusively.
👉 Full Getting Started guide →
- Author: Derek Tremblay (derektremblay666@gmail.com)
- Contributors: Claude Sonnet 4.6 · ehsan69h · Janus Tida
- License: GNU Affero General Public License v3.0
- Issues: GitHub Issue Tracker
- Discussions: GitHub Discussions
✨ Wpf HexEditor user control, by Derek Tremblay (derektremblay666@gmail.com) coded for your fun! 😊🤟
- API Reference
- Performance
- Services
- Core Components
- ByteProvider
- Rendering Engine
- Search Architecture
- WpfHexEditor.Shell (renamed from Docking.Wpf)
- Code Editor ~90% (NavBar, Inline Hints, Quick Info)
- XAML Visual Designer ~70%
- Shared UndoEngine (coalescing + transactions)
- VS
.sln/.csproj+ Open-Folder mode - Build System (IBuildAdapter + MSBuild plugin)
- Assembly Explorer + NuGet Solution Manager
- Synalysis Grammar Support (IGrammarProvider)