Skip to main content
net6.0net8.0

A hex editor control for the Avalonia UI framework.

Published
Mar 1, 2025
1y ago
Total Downloads
57.0K
56,952

Install

dotnet add package AvaloniaHex --version 0.1.7
ProductVersions
.NET
net6.0net8.0

README

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 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

Changes from Previous Version

No structural changes between v0.1.6 and v0.1.7.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.Compatibility metadata lists 2 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.