/WpfHexEditorControl

A fast, fully customisable Wpf user control for editing file or stream as hexadecimal. Can be used in Wpf or WinForm application

Primary LanguageC#Apache License 2.0Apache-2.0

example

NuGet NetFramework NetFramework License Donate

A fast, fully customisable Wpf user control for editing file or stream as hexadecimal.

Can be used in WPF or WinForm application.

Localized in English, French, Russian, Polish, Portuguese and Chinese

You want to say thank or just like project ?

Hexeditor control is totaly free and can be used in all project you want like open source and commercial applications. I make it in my free time and a few colaborators help me when they can... Please hit the ⭐️ button or fork and I will be very happy ;) I accept help contribution... I also accept voluntary donations via PayPal if you want to encourage my work :)

Screenshots

Sample with standard ASCII character table example

Sample with custom character table (TBL) on SNES Final Fantasy II US example

Sample use ByteShiftLeft and BytePerLine properties with custom TBL for edit fixed lenght table... example

Sample use of find dialog... (Replace dialog are under construction) example

What is TBL (custom character table)

The TBL are small plaintext .tbl files that link every hexadecimal value with a character, which proves most useful when reading and changing text data. Wpf HexEditor support .tbl and you can define your custom character table as you want.

Unicode TBL are supported. For use put value at the right of equal (=) like this (0401=塞西尔) or (42=Д) in you plaintext .tbl file.

example

Somes features

  • Append byte at end of file
  • Include HexBox, an Hexadecimal TextBox with spinner
  • Fill selection (or another array) with byte.
  • Support of common key in window like CTRL+C, CTRL+V, CTRL+Z, CTRL+A, ESC...
  • Copy to clipboard as code like C#, VB.Net, C, Java, F# ...
  • Support custom .TBL character table file insted of default ASCII.
  • Undo (no redo for now)
  • Finds methods (FindFirst, FindNext, FindAll, FindLast, FindSelection) and overload for (string, byte[])
  • Highlight byte with somes find methods
  • Bookmark
  • Group byte in block
  • Show data as hexadecimal or decimal
  • ...

How to use

Add a reference to WPFHexaEditor.dll from your project, then add the following namespace to your XAML:

xmlns:control="clr-namespace:WpfHexaEditor;assembly=WPFHexaEditor"

Insert the control like this:

<control:HexEditor/>
<control:HexEditor Width="NaN" Height="NaN"/>
<control:HexEditor Width="Auto" Height="Auto"/>
<control:HexEditor FileName={Binding FileNamePath} Width="Auto" Height="Auto"/>