r/AvaloniaUI 5h ago

An update on a project I rebuilt for performance: Avalonia 12 and Native AOT

Thumbnail
gallery
14 Upvotes

An update on an Avalonia project I rebuilt to run on Native AOT. This is a live keys rig. Think: SundayKeys App, Camelot Pro, Ableton, Mainstage, GigPerformer. But for android primarily, and windows.

I thought I wouldn't be able to make it work fast enough. I had a beta build publicly available, loading times leave much to be desired, and fps dropped frequently. Avalonia 12 releases, I finally migrated and forced myself to work on getting things running with Native AOT.

After months of work it paid off. load times are just as fast as any native app, no more fps drops, navigation is almost instant, and performance is great considering my test device is a very low-end tablet with 4gigs of ram and a unisoc T606.

It might be an unusual stack for this type of project, but it works well. It might've taken a bit more work than just going full on kotlin or the usual frameworks for these types of apps, but its a good enough trade off for me to keep using a stack that I am experienced and comfortable with.

Still smoothing out the rough edges (basically just improving the UI)

Some added context:

- The beta (before this rebuild) was on Avalonia 11.3, no Native AOT

- The engine itself is now mostly in C++, but a chunk of the logic (persistence, ui logic) still lives in C#

- It was desktop-first before so the Native AOT was not really a consideration since it already ran well. Moving into a mobile-first priority (for personal reasons, mainly portability on my part) and how it runs on a mobile device exposed those ugly parts which added to the realization that i really need Native AOT despite it being a stricter environment.


r/AvaloniaUI 7h ago

Avalonia 12.1.0 released.

Thumbnail avaloniaui.net
26 Upvotes

A little late, but sharing.


r/AvaloniaUI 8d ago

Anyone got Media Keys to work on Buttons on MacOS?

3 Upvotes

I use HotKey attributes on Buttons, with media keys in my app, and on Android it works for vol +/-, on Windows it works for Track Prev/Next/PlayPause, and on Mac nothing works at all.

Looking at what I think is the Mac source https://github.com/AvaloniaUI/Avalonia/blob/main/native/Avalonia.Native/src/OSX/KeyTransform.mm looks like only vol +/- is coded, but I can't even get those to work. I am not a Mac programmer so no idea how to debug this.

Anyone had success here?


r/AvaloniaUI 23d ago

Avalonia Community sign ups are currently unavailable

Thumbnail
gallery
18 Upvotes

How do signup? Looks like Avalonia is completely crippled right now :/


r/AvaloniaUI 24d ago

Noob question warning but, how do I get a free license when it doesn't have a select button?

2 Upvotes

Hey, I haven't been updated on Avalonia so it all seems alien to me. I used to just F5 and runt he project, F12 and open dev tools. I migrated to the new diagnostic package and no compiler errors. Great. Now I create an account and apparently I need a free license? Nice. Except I cannot choose free license? Is the UI playing tricks on me, or is it the coffee I forgot to drink?


r/AvaloniaUI 29d ago

One Year Into Three Million Dollars of Trust

Thumbnail avaloniaui.net
27 Upvotes

r/AvaloniaUI 29d ago

Where is the dotnet-apiref command?

3 Upvotes

This is apparently used in generating the Avalonia API documentation from the doc comments in the Avalonia source code. See:

https://github.com/AvaloniaUI/avalonia-docs#api-reference-generation

Reason I ask is that I find it annoying that many Avalonia API documentation pages do not have the names of the methods, properties, etc. alphabetized, and I was going to submit a PR to rectify this (it should be easy enough, computers are good at sorting). But I can't seem to locate the relevant code that needs changing (which I am guessing would be in this script).

Neither Google nor Duck Duck Go seem to have anything to say about dotnet-apiref save for AI hallucinations. It seems to be some sort of Avalonia-specific build tool that never got checked into Github.


r/AvaloniaUI Jun 20 '26

How can I create mobile apps on linux

0 Upvotes

Hey I am on arch I want to build a mobile application, I don't know what to use, I am not pretty sure if I can do it with avalonia, also I read few weeks ago that Maui has avalonia back, something like that.

Guide me please I am confused.

Note: I don't have windows.


r/AvaloniaUI Jun 12 '26

ImagePrepSharp: Prepare Photos for Sharing

2 Upvotes

https://github.com/DavidBarts/ImagePrepSharp

This is a C#/Avalonia program to make it easy to share photos. It does this by stripping out extraneous metadata and ensuring the shared image will always display properly (no more surprises with images that come out sideways or upside down).

It opens an image file (it can handle any format Image Magick can, which is a whole lot of formats; this includes the HEIC files produced by iPhones but does not include camera raw files). It prompts for a desired maximum resolution (i.e. the resolution of the height or the width, whichever is greater), and downsamples the image to that resolution if needed. If the colour space is not sRGB, it converts it to sRGB. Most metadata (except for the colour profile) are deleted; this includes privacy-sensitive metadata revealing your camera model and serial number, and details of the image you shot.

Then it displays the image and lets you rotate it so it is right side up, if needed. After possibly rotating the image, the it can be saved in JPEG or WebP format suitable for sharing.

Mac app bundles (built on Tahoe 26.5.1) are included, because a Mac is what I have. It should build under Linux and Windows as well (and I’d appreciate someone doing that and sharing the resulting binaries with me so I can add them to the dist subdirectory).

I wrote this program for my own personal use and figured I’d share it in case anyone else finds it useful.


r/AvaloniaUI Jun 11 '26

So if I get this straight, I have to pay at least 405$ in order to use the pro ui components in my FOSS project?

3 Upvotes

Hey /u/kekekeks /u/AvaloniaUI-Mike /u/jmacato

I want to know if I understand the license correctly - the monthly license only gives me a license for that month.

If I want to keep and use the version I got, I need a perpetual license for that version, and for that I need the annual subscription, right?

And then the version I get perpetually is the version from the start of the year or the end of the year?


r/AvaloniaUI Jun 07 '26

I (kinda) built PolyInstall, a .NET/Avalonia installer generator driven by YAML manifests

Thumbnail
4 Upvotes

r/AvaloniaUI Jun 06 '26

Looking for current MacOS deployment details

3 Upvotes

My Mac certs expired and I am in hell trying to get an update on the App Store. I tried reading https://docs.avaloniaui.net/docs/deployment/macos but it is too vague on exactly which certs I need to get, and doesn't appear to match the current Apple certificate experience. Does anyone have a pointer to a current idiot's guide to Mac dev certificates?

Edit: SOLVED, see comment.


r/AvaloniaUI Jun 03 '26

Generic font names?

3 Upvotes

Is there any way to get generic (system-preferred) serif, sans serif, and monospace fonts in Avalonia like there is in CSS with "serif", "sans-serif", "monospace", etc?


r/AvaloniaUI May 29 '26

Is it possible to detect that the shortcut that launched my app specified Run: Minimized in the shortcut?

2 Upvotes

I've written a Windows & Linux app. When the app is launched in Windows, from a shortcut that specifies "Run: Minimized" I'd like to ensure that the main window is minimized.

Is there a way to do this other than P/Invoke? If so, what is it?

Thanks!

----- UPDATE -----

I was hoping for a solution that would automatically detect the "Run Minimized" mode in a Windows shortcut, again, without resorting to P/Invoke.

I settled on having the app react to a "--minimize" parameter in the command line that launched it: https://github.com/EricTerrell/EBTWeather/commit/976211d1d92e6274e6321c9a38c9436182facac9

Thanks to https://github.com/LaurentInSeattle for the suggestion.


r/AvaloniaUI May 29 '26

Has anyone released a paid AvaloniaUI app to the macOS Store?

3 Upvotes

Hey r/AvaloniaUI I'm building a desktop app that I'm looking to release as a paid app in the store. I'm initiallly planning on using the Iaphub nuget however, it seems that it is only for mobile apps.

Anyone here with experience on integrating StoreKit or StoreKit2 in an Avalonia desktop app?

Will be grateful for any help.


r/AvaloniaUI May 25 '26

Subclassed ButtonSpinner does not render properly

3 Upvotes

I am trying to subclass a ButtonSpinner with TextBlock content:

public class MaxDimSpinner : ButtonSpinner
{
    private static readonly int[] DIMENSIONS = [320, 400, 512, 640, 800, 1024, 1280, 1600];

    private int index;

    public int Value {
        get => DIMENSIONS[index];
        set {
            var _index = Array.IndexOf(DIMENSIONS, value);
            if (_index < 0)
            {
                throw new ArgumentException($"Invalid maximum dimension: {value}.");
            }
            index = _index;
            ((TextBlock) Content!).Text = value.ToString();
        }
    }

    public MaxDimSpinner() : base()
    {
        Content = new TextBlock();
        Value = Settings.Instance.MaxDimension;
        Spin += OnSpin;
    }
[edited for brevity]

When I try to use my control in XAML, something like:

<local:MaxDimSpinner />

I just get the content (the text block). No up and down buttons, no box drawn around the whole control. I assume I am not doing something programmatically that happens when one nests a <TextBlock> inside a <ButtonSpinner> in XAML (this works as expected), but I haven't been able to figure out what it is.


r/AvaloniaUI May 20 '26

I built an open-source .NET/Avalonia desktop workspace with installable packages

11 Upvotes

Hey r/AvaloniaUI,

I wanted to share a project I’ve been building for a while
It started from a pretty simple frustration
I use a lot of different tools every day: editors, terminals, AI chats, dashboards, scripts, notes, local services, random internal tools. Most apps are great at what they do, but after some time I always end up adapting my workflow around the app.

I kept wishing I had a desktop workspace that worked more like:

“Start with a shell, then install the capabilities you need and organize them by your preference”

So I started building Sunder.

It’s an open-source, local-first desktop app built with .NET and Avalonia. The core idea is that the app itself stays relatively small, and features come from installable packages.

Right now it has:

- A desktop shell
- A local runtime host
- A CLI
- An SDK for package authors
- Package templates
- MSBuild package tooling
- A `.sunderpkg` archive format
- Package-contributed UI, settings, services, storage, secrets, and background work

The first package family I built is AI-agent oriented, because that was the itch I personally had first. I wanted local agent sessions, tools, memory, model providers, and execution targets inside the same desktop workspace.

But Sunder itself is not meant to be “an AI app”.

The part I care about more is the package model. I’d love for people to eventually be able to build packages for developer tools, dashboards, automations, research workflows, personal tools, or anything else that makes sense in a desktop workspace.

I’m not pretending this is perfect or finished. It’s still early, and I’m sure there are things I’ll need to rethink.

But it’s open-source now, and I’d really appreciate feedback from people who have experience with .NET desktop apps, plugin systems, SDK design, or Avalonia.

A few things I’m especially curious about:

- Would you trust/use Avalonia for this kind of desktop app?
- If you were designing a package/plugin system, what would you be careful about?
- Does separating the desktop shell from a local runtime host sound reasonable?
- What kind of package would you expect a workspace like this to support first?

Happy to answer questions or hear criticism : )


r/AvaloniaUI May 14 '26

Parcel - fails when there is a space in the folder path

1 Upvotes

Is this a known issue? If not, how do I report it? It seems obvious.

If I attempt to build an install from a project here:

C:\Users\erict\Documents\software development\Avalonia UI\EBTWeather

I get the following error when I try to build an install. If the project path doesn't have spaces, it works.

Other than this somewhat basic issue, the installer seems great!

Thanks!

*** UPDATE ***

Issue reported: https://github.com/AvaloniaUI/AvaloniaPro/issues/96

*** UPDATE ***

-----

[INF]: Validating project

[INF]: Resolving MSBuild properties

[ERR]: Internal error: System.InvalidOperationException: msbuild process exited with code 1.

[ERR]: Output: MSBUILD : error MSB1008: Only one project can be specified.

[ERR]: Full command line: 'C:\Program Files\dotnet\sdk\10.0.101\MSBuild.dll -maxcpucount --verbosity:m -tlp:default=auto C:\Users\erict\Documents\software development\Avalonia UI\EBTWeather\EBTWeather.Avalonia\EBTWeather.Avalonia.csproj -getProperty:BaseIntermediateOutputPath,BaseOutputPath,UseArtifactsOutput,ArtifactsPath -distributedlogger:Microsoft.DotNet.Cli.Commands.MSBuild.MSBuildLogger,C:\Program Files\dotnet\sdk\10.0.101\dotnet.dll*Microsoft.DotNet.Cli.Commands.MSBuild.MSBuildForwardingLogger,C:\Program Files\dotnet\sdk\10.0.101\dotnet.dll'

[ERR]: Switches appended by response files:

[ERR]: Switch: development\Avalonia

[ERR]: For switch syntax, type "MSBuild -help"

[ERR]: Error:

[ERR]: at AvaloniaUI.BuildTools.Utilities.DotNetRunner.<RunDotnet>d__9.MoveNext() + 0x5ff

[ERR]: --- End of stack trace from previous location ---

[ERR]: at AvaloniaUI.BuildTools.MSBuild.MSBuildProjectTools.<GetProjectMetadata>d__0.MoveNext() + 0x9c

[ERR]: --- End of stack trace from previous location ---

[ERR]: at AvaloniaUI.Packagers.Session.PackagingSession.<ResolveMsBuildProperties>d__18.MoveNext() + 0x53

[ERR]: --- End of stack trace from previous location ---

[ERR]: at AvaloniaUI.Packagers.Session.PackagingSession.<PrepareProject>d__11.MoveNext() + 0xf5

[ERR]: --- End of stack trace from previous location ---

[ERR]: at AvaloniaUI.Packagers.Session.PackagingSession.<RunAsync>d__9.MoveNext() + 0x242


r/AvaloniaUI May 14 '26

TreeDataGrid - Why can't I use this?

8 Upvotes

I'm a single developer working on a pet project that will never be sold. I want to use TreeDataGrid, but the Community License doesn't seem to support it. And if it does, I can't seem to find my license in the portal.

I get that this company has to make money, but when you leave us with a data grid that is no longer maintained, what are our alternatives? So after upgrading to v12, it seems like I'm just left with an old clunky data grid that will probably stop working at some point. I don't mean to sound ungrateful, because working in Avalonia has been pretty good so far, but I feel data grids should be a basic function within a framework like this.


r/AvaloniaUI May 11 '26

LiveCharts2 chart not rendering

2 Upvotes

I’m using LiveCharts2 with Avalonia in .net 8, but the chart is not showing (blank view) even with the basic sample in the docs.


r/AvaloniaUI May 05 '26

Avalonia app in one file. No XAML, no .csproj, just one code file - now it's possible with .NET 10 File-based apps

Post image
27 Upvotes

r/AvaloniaUI May 04 '26

Can't get Avalonia 12 + .NET8 + Browser project to build

Thumbnail
0 Upvotes

r/AvaloniaUI May 04 '26

Can't get Avalonia 12 + .NET8 + Browser project to build

2 Upvotes

When I make a template project using Avalonia extension for Visual Studio, it doesn't even use Avalonia 12 (though the release notes talk about it's release). I then manually update .csproj files from Avalonia version 11.3.12 to 12.0.2, build and run Desktop project. That works fine.

But when I run the Browser project I get:

'AppBuilder' does not contain a definition for 'StartBrowserAppAsync' and no accessible extension method 'StartBrowserAppAsync' accepting a first argument of type 'AppBuilder' could be found (are you missing a using directive or an assembly reference?)'

I understand v12 took away Avalonia.Browser namespace, but they don't seem to point or provide the 'new way' of building the browser project.

FYI reason I use .NET8 is cause my job won't mass deploy .NET10 right now.

Any help is extremely appreciated.


r/AvaloniaUI Apr 29 '26

WPF Modernization in 2026

Thumbnail avaloniaui.net
14 Upvotes

r/AvaloniaUI Apr 25 '26

Aniki - sharing progress on my desktop open-source anime app

Thumbnail gallery
9 Upvotes