-
Notifications
You must be signed in to change notification settings - Fork 142
Home
abbaye edited this page Mar 7, 2026
·
15 revisions
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, and a powerful hex editor control at its core.
flowchart LR
subgraph IDE["WpfHexEditor IDE"]
App["IDE Application\nWpfHexEditor.App"]
Editors["6 Editors\nHex · TBL · JSON · Text · Image · Code"]
Panels["12 Panels\nSolution Explorer · Terminal\nPlugin Manager · Plugin Monitoring · ..."]
Plugins["Plugin System\nSDK + PluginHost\n7 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, migration pipeline, IEditorPersistable
|
| ↳ 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, 8 themes |
| Project System |
.whsln / .whproj, virtual & physical folders, format migration |
| 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 |
| Editor | Progress | Notes |
|---|---|---|
| Hex Editor | ~75% | Insert/overwrite, 400+ formats, TBL, search, bookmarks |
| TBL Editor | ~60% | Character table editor for ROM hacking |
| Code Editor | ~55% | Syntax highlighting, find/replace, IEditorPersistable
|
| JSON Editor | ~65% | Live validation, diagnostics to Error Panel |
| Text Editor | ~50% | Encoding support, caret persistence |
| Image Viewer | ~30% | Zoom/pan, rotate/flip/crop/resize pipeline |
| Panel | Progress |
|---|---|
| Parsed Fields | ~75% |
| Data Inspector (40+ types) | ~65% |
| Structure Overlay | ~55% |
| Solution Explorer | ~75% |
| Properties Panel | ~60% |
| Error Panel | ~70% |
| Output Panel | ~65% |
| Terminal Panel | ~70% |
| Plugin Manager | ~65% |
| Plugin Monitoring | ~60% |
| 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
- Plugin Monitoring Panel — real-time CPU%/memory charts per plugin, pure WPF Canvas + Polyline
- Terminal Panel UX Overhaul — RichTextBox output, 6 export formats, mode indicator, auto-scroll, timestamps, tab completion
- Plugin Manager Overhaul — themed toolbar, RelayCommand, live status, diagnostics output
-
Format-Aware Editor Selection —
EmbeddedFormatCatalog+preferredEditorkey in.whfmt -
Image Viewer Crop — 8 resize handles, veil overlay,
FileShare.ReadWriteconcurrent open -
HexEditor Navigation Fixes — keyboard scroll exact 1-line advance,
VerticalScroll.Valuesync -
Solution Explorer Multi-Select —
DataTriggerdriven, WPF native selection bypassed -
Properties Panel Auto-Refresh —
DependencyPropertyDescriptorbypass of anti-recursion guard -
WelcomePanel — "What's Next" roadmap section restored (parser now handles
##without brackets)
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: Apache 2.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
- whfmt.FileFormatCatalog v1.0.0 NuGet (cross-platform net8.0)
- 690+ .whfmt definitions (schema v2.3)
- Structure Editor — block DataGrid, drag-drop, validation, SmartComplete
- WhfmtBrowser/Catalog panels — browse all embedded formats
- AI Assistant (5 providers, 25 MCP tools)
- Tab Groups, Document Structure, Lazy Plugin Loading
- Window Menu + Win32 Fullscreen (
F11) - Git Integration UI (changes, history, blame)
- Shared Undo Engine (HexEditor ↔ CodeEditor)
- Bracket pair colorization, sticky scroll, peek definition
- Format detection hardening (thread-safe, crash guard)