Skip to content

Washi1337/AvaloniaHex

Repository files navigation

AvaloniaHex

This is a(n experimental) hex editor control for the Avalonia UI framework.

Features

  • Display binary data in hex, binary and ASCII.
  • Adjust the displayed bytes per line manually or automatically.
  • Modify binary documents in-place.
  • Specify invalid or inaccessible ranges. Useful for documents with "gaps" (e.g., memory views).
  • Many style customization options available with default Light and Dark themes.
  • Custom byte ranges highlighting.
  • Support for memory mapped files.

Binaries

Quick Start Guide

After installing the AvaloniaHex dependency, add the default control styles to your App.axaml:

<Application xmlns="https://github.com/avaloniaui" ... >
    <Application.Styles>
        ...
        <StyleInclude Source="avares://AvaloniaHex/Themes/Simple/AvaloniaHex.axaml"/>
    </Application.Styles>
</Application>

Then, add the HexEditor control to your window:

<Window
    xmlns:avaloniaHex="clr-namespace:AvaloniaHex;assembly=AvaloniaHex"
    xmlns:rendering="clr-namespace:AvaloniaHex.Rendering;assembly=AvaloniaHex"
    ...>
    
    <avaloniaHex:HexEditor FontFamily="Cascadia Code,JetBrains Mono,Monospace,monospace">
        <!-- Define columns to display -->
        <avaloniaHex:HexEditor.Columns>
            <rendering:OffsetColumn />
            <rendering:HexColumn />
            <rendering:AsciiColumn />
        </avaloniaHex:HexEditor.Columns>
    </avaloniaHex:HexEditor>

</Window>

To display a file in the control, assign the Document property:

HexEditor editor = ...;

editor.Document = new MemoryBinaryDocument(File.ReadAllBytes(@"C:\Path\To\File.bin"));

See examples for more details.

License

MIT

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages