Avalonia Controls That Avalonia Pro Does Not Ship

sgcUI adds a scheduler, a Kanban board, a Gantt chart, a pivot grid, a diagram editor, dashboards, wizards, maps and reports to an Avalonia 12 application. The controls run inside your Avalonia app, next to the Avalonia controls and FluentTheme, and next to Avalonia Pro controls if you use them. For the grid, the chart, the PDF viewer and the rich text editor, sgcUI also offers a second licence model. This kit shows both, with XAML from a sample that compiles and passes its self test.

Teams That Build Desktop Apps on Avalonia

You keep Avalonia, its theme, its tooling and your view models. sgcUI is a set of controls you add, not a framework you move to.

You use Avalonia Pro

Keep your subscription and add the controls that are not listed on the Avalonia Pro page: scheduler, Gantt, Kanban, pivot grid, diagram, dashboard, wizard, maps and reports. They share the sgc XAML prefix, bind to your view models and follow the Fluent theme variant of your app.

You are choosing a paid tier

If the change to the Community tier means your team now needs a paid Avalonia tier for premium controls, compare the options. sgcUI has its own grid, chart, PDF viewer and rich text editor for Avalonia, licensed per developer with full C# source code, and WinForms and WPF versions of the same controls in the same licence.

What changed at Avalonia: in a post dated April 7, 2026, Avalonia announced "Today, alongside the release of Avalonia 12, we're retiring the Avalonia Accelerate brand entirely." The same post says "The Community tier is moving to non-commercial use only", with the change taking effect that day for new signups and over the following weeks for existing Community subscribers. Organisations that used the Community tier commercially and qualified under its original terms (under EUR 1 million in annual revenue) are offered a 50% transition discount on an organisational licence, and existing Accelerate subscribers keep their subscription and their pricing. On the Avalonia pricing page (read on 2026-10-20) the framework itself stays a free, "MIT licensed UI framework", Plus is EUR 299 per seat per year, Pro is EUR 899 per seat per year and Enterprise starts at EUR 21,000 per year with three seats included. Prices exclude VAT, and the page notes that "Seats are for developers doing UI work, not the whole team."

Control by Control

The Avalonia Pro column lists what the Avalonia pages name, read on 2026-10-20. "Not listed" means only that the control is not listed on the Avalonia Pro page.

Control Avalonia Pro sgcUI Avalonia control sgcUI product, .NET edition
Scheduler (calendar)not listed on the Avalonia Pro pageTsgcAvaloniaSchedulersgcPlanner, .NET Enterprise
Ganttnot listed on the Avalonia Pro pageTsgcAvaloniaGanttsgcPlanner, .NET Enterprise
Kanbannot listed on the Avalonia Pro pageTsgcAvaloniaKanbansgcPlanner, .NET Enterprise
Pivot gridnot listed on the Avalonia Pro pageTsgcAvaloniaPivotGrid, TsgcAvaloniaPivotFieldListsgcPivotGrid, .NET Enterprise
Diagramnot listed on the Avalonia Pro pageTsgcAvaloniaDiagramViewsgcDiagram, .NET Enterprise
Dashboardnot listed on the Avalonia Pro pageTsgcAvaloniaDashboard, TsgcAvaloniaDashboardTile, TsgcAvaloniaKPICardsgcDashboard, .NET Professional
Wizardnot listed on the Avalonia Pro pageTsgcAvaloniaWizard, TsgcAvaloniaSteppersgcWizard, .NET Enterprise
Mapsnot listed on the Avalonia Pro pageTsgcAvaloniaMapsgcMaps, .NET Enterprise
Reportsnot listed on the Avalonia Pro pageTsgcAvaloniaReportDesigner, TsgcAvaloniaReportPreviewsgcReports, .NET Enterprise
Gaugesa "Gauge" category on the Charts pageTsgcAvalonia<Kind>GaugesgcGauges, .NET Professional
Data gridTree DataGrid (Avalonia.Controls.TreeDataGrid), with flat and hierarchical modesTsgcAvaloniaGrid, TsgcAvaloniaGridColumnsgcGrid, .NET Standard
ChartsCharts (Avalonia.Controls.Charts), "70+ chart types"TsgcAvaloniaChart, TsgcAvaloniaChartSeries, TsgcAvaloniaChartAxissgcCharts, .NET Professional
PDF viewerPDF Viewer (Avalonia.Controls.PdfViewer)TsgcAvaloniaPDFViewer, TsgcAvaloniaPDFThumbnailView, TsgcAvaloniaPDFOutlineView; sgcPDF also creates, edits and signs PDF filessgcPDF, .NET Enterprise
Rich text editorRich Text Editor (Avalonia.Controls.RichTextEditor)TsgcAvaloniaRichEdit; JSON, HTML, Markdown and RTF in and outsgcRichEdit, .NET Enterprise (Registered only)
Markdown vieweryesno dedicated viewer; TsgcAvaloniaRichEdit reads Markdown 
Media playeryesno 
On screen keyboardyesno 

Every product above is also sold as a single package. On Avalonia, the Charts page says Pro "carries all seven premium components, 70+ chart types and the advanced tooling" and "Nothing on this page is a separate purchase."

Two Licence Models Side by Side

As of 2026-10-20. Avalonia prices are from the Avalonia pricing page, sgcUI prices from the sgcUI pricing page.

  Avalonia Pro sgcUI for .NET
Modelsubscription per seat, yearly or monthly billingper developer licence with 1 year of updates included: Single, Team (2 developers) or Site (unlimited)
PriceEUR 899 per seat per year, excluding VAT.NET Standard €380, .NET Professional €529, .NET Enterprise €699 per developer
Single productsnot sold separatelyfor example sgcGrid .NET €199, sgcCharts .NET €199, sgcDashboard .NET €199, sgcPlanner .NET €249, sgcPivotGrid .NET €249, sgcDiagram .NET €249, sgcPDF .NET €249, sgcRichEdit .NET €299
Renewalyearly subscriptionrenewal discount of 50% (Standard), 60% (Professional) and 70% (Enterprise)
Source codefull source for premium controls in Enterprisefull C# source code in every Registered edition and single package
Redistributionnot stated on the pages readfree binary redistribution in every edition
UI platformsAvaloniaWinForms, WPF and Avalonia in every .NET edition
Free tierCommunity, non-commercial use only for new signups since 2026-04-07Community NuGet packages, free in commercial and non-commercial projects for an individual or organisation with annual gross revenue under EUR 1,000,000 and no more than five developers, with feature limits per product. sgcRichEdit and sgcMaps for .NET have no Community package.

The four controls of the sample that are not listed on the Avalonia Pro page (planner, pivot grid, diagram and dashboard) come together in .NET Enterprise, or one by one as single packages. Avalonia Plus and Pro also include vendor tooling such as Hot Reload, DevTools and the Visual Studio and VS Code extensions. sgcUI is components only, so keep the Avalonia tier your team needs for tooling.

sgcUI in an Avalonia 12 Window

Every excerpt is copied from the AvaloniaProAlternative sample, an Avalonia 12 app on net8.0 with compiled bindings and FluentTheme, which compiles in Release for the Registered and Community editions with 0 warnings in the demo and passes its self test. There is no Avalonia Pro code here: this page shows only code that was compiled.

One XAML prefix for every product

Each sgcUI Avalonia assembly maps its controls to one namespace URI, so a single sgc prefix covers all of them, next to the Avalonia default namespace:

MainWindow.axaml
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sgc="https://www.esegece.com/sgcui"
        xmlns:vm="using:sgcUIAvaloniaPro"
        x:Class="sgcUIAvaloniaPro.MainWindow"
        x:DataType="vm:TMainViewModel"
        Title="sgcUI next to Avalonia 12: the controls Avalonia Pro does not ship" Width="1240" Height="820">

Not listed on the Avalonia Pro page: scheduler and Kanban over one task list

Both views bind to the same Tasks collection of the view model. TsgcAvaloniaPlannerItemFields maps the members of your own task class, and a drag in either view writes Begin, End or Stage back to the task:

MainWindow.axaml
<sgc:TsgcAvaloniaScheduler x:Name="scheduler" ItemsSource="{Binding Tasks}"
                           ResourcesSource="{Binding People}" SelectedItem="{Binding Selected}">
  <sgc:TsgcAvaloniaScheduler.ItemFields>
    <sgc:TsgcAvaloniaPlannerItemFields IdField="Key" TitleField="Name" StartField="Begin"
                                       FinishField="End" ResourcesField="Owner" StatusField="Stage"/>
  </sgc:TsgcAvaloniaScheduler.ItemFields>
  <sgc:TsgcAvaloniaScheduler.ResourceFields>
    <sgc:TsgcAvaloniaPlannerResourceFields IdField="Code" NameField="Label"/>
  </sgc:TsgcAvaloniaScheduler.ResourceFields>
</sgc:TsgcAvaloniaScheduler>
<sgc:TsgcAvaloniaKanban x:Name="kanban" Grid.Row="1" Margin="0,8,0,0" ColumnSource="pkcList"
                        ItemsSource="{Binding Tasks}" ResourcesSource="{Binding People}"
                        SelectedItem="{Binding Selected}">
  <sgc:TsgcAvaloniaKanban.ItemFields>
    <sgc:TsgcAvaloniaPlannerItemFields IdField="Key" TitleField="Name" StartField="Begin"
                                       FinishField="End" ResourcesField="Owner" StatusField="Stage"/>
  </sgc:TsgcAvaloniaKanban.ItemFields>
  <sgc:TsgcAvaloniaKanban.ResourceFields>
    <sgc:TsgcAvaloniaPlannerResourceFields IdField="Code" NameField="Label"/>
  </sgc:TsgcAvaloniaKanban.ResourceFields>
  <sgc:TsgcAvaloniaKanban.Columns>
    <sgc:TsgcAvaloniaKanbanColumn StatusId="todo" Caption="To do"/>
    <sgc:TsgcAvaloniaKanbanColumn StatusId="doing" Caption="In progress"/>
    <sgc:TsgcAvaloniaKanbanColumn StatusId="done" Caption="Done"/>
  </sgc:TsgcAvaloniaKanban.Columns>
</sgc:TsgcAvaloniaKanban>

Not listed: pivot grid with a field list

MainWindow.axaml
<sgc:TsgcAvaloniaPivotGrid x:Name="pivot" ItemsSource="{Binding Sales}">
  <sgc:TsgcAvaloniaPivotField FieldName="Region" Area="pvaRow" Caption="Region"/>
  <sgc:TsgcAvaloniaPivotField FieldName="Channel" Area="pvaRow" Caption="Channel"/>
  <sgc:TsgcAvaloniaPivotField FieldName="Product" Area="pvaColumn" Caption="Product"/>
  <sgc:TsgcAvaloniaPivotField FieldName="Amount" Area="pvaData" Aggregation="pvfSum" Caption="Sales"/>
</sgc:TsgcAvaloniaPivotGrid>
<sgc:TsgcAvaloniaPivotFieldList x:Name="fieldList" Grid.Column="1" Margin="8,0,0,0"
                                PivotGrid="{Binding #pivot}"/>

Not listed: a diagram built from a collection

An org chart from the Employees collection and its parent member. NodesSource and LinksSource are Registered only, so the Community build of the sample hides this tab.

Views\DiagramTab.axaml
<sgc:TsgcAvaloniaDiagramView x:Name="diagram"
                             NodesSource="{Binding Employees}" NodeKeyMember="Id" NodeLabelMember="Name"
                             NodeParentMember="ManagerId"
                             LinksSource="{Binding Links}" LinkFromMember="From" LinkToMember="To"
                             LinkLabelMember="Label"/>

Not listed: a dashboard of KPI cards and a chart

Tiles on a 12 column grid, each hosting a KPI card or any control, bound to the view model:

MainWindow.axaml
<sgc:TsgcAvaloniaDashboard x:Name="dashboard" Columns="12" RowHeight="110">
  <sgc:TsgcAvaloniaDashboardTile Title="Revenue" Col="0" Row="0" ColSpan="4" RowSpan="2">
    <sgc:TsgcAvaloniaKPICard x:Name="kpiRevenue" Title="Revenue this month" Value="{Binding Revenue}"
                             Trend="ktUp" FooterText="all channels"/>
  </sgc:TsgcAvaloniaDashboardTile>
  <sgc:TsgcAvaloniaDashboardTile Title="Orders" Col="4" Row="0" ColSpan="4" RowSpan="2">
    <sgc:TsgcAvaloniaKPICard x:Name="kpiOrders" Title="Orders" Value="{Binding Orders}"
                             Trend="ktUp" FooterText="this month"/>
  </sgc:TsgcAvaloniaDashboardTile>
  <sgc:TsgcAvaloniaDashboardTile Title="Support" Col="8" Row="0" ColSpan="4" RowSpan="2">
    <sgc:TsgcAvaloniaKPICard x:Name="kpiTickets" Title="Open tickets" Value="{Binding Tickets}"
                             Trend="ktDown" FooterText="help desk"/>
  </sgc:TsgcAvaloniaDashboardTile>
  <sgc:TsgcAvaloniaDashboardTile Title="Visits per day" Col="0" Row="2" ColSpan="12" RowSpan="3">
    <sgc:TsgcAvaloniaChart x:Name="chartVisits">
      <sgc:TsgcAvaloniaChartSeries ItemsSource="{Binding Visits}" XMember="Time" YMember="Value"
                                   Title="Visits" Color="#FF16A34A"/>
      <sgc:TsgcAvaloniaChart.Axes>
        <sgc:TsgcAvaloniaChartAxis Name="X" AxisType="catDateTime"/>
        <sgc:TsgcAvaloniaChartAxis Name="Y" Title="Visits"/>
      </sgc:TsgcAvaloniaChart.Axes>
    </sgc:TsgcAvaloniaChart>
  </sgc:TsgcAvaloniaDashboardTile>
</sgc:TsgcAvaloniaDashboard>

Also in Avalonia Pro: grid, chart, PDF viewer and rich text

When you swap an overlapping control, the view changes and the view model stays. The grid with declared columns and a two way SelectedItem:

MainWindow.axaml
<sgc:TsgcAvaloniaGrid x:Name="grid" x:DataType="vm:TGridViewModel" Margin="8"
                      ItemsSource="{Binding Customers}" SelectedItem="{Binding Selected}"
                      KeyMember="Id" AutoGenerateColumns="False">
  <sgc:TsgcAvaloniaGridColumn FieldName="Id" Caption="Id" Width="60" DataType="gdtInteger"/>
  <sgc:TsgcAvaloniaGridColumn FieldName="Name" Caption="Customer" Width="220"/>
  <sgc:TsgcAvaloniaGridColumn FieldName="City" Caption="City" Width="140"/>
  <sgc:TsgcAvaloniaGridColumn FieldName="Balance" Caption="Balance" Width="130" DataType="gdtFloat"
                              DisplayFormat="#,##0.00" Alignment="gaRight"/>
</sgc:TsgcAvaloniaGrid>

A line chart over a date time axis:

MainWindow.axaml
<sgc:TsgcAvaloniaChart x:Name="chartPrice" x:DataType="vm:TChartViewModel" Margin="8">
  <sgc:TsgcAvaloniaChartSeries ItemsSource="{Binding Prices}" XMember="Time" YMember="Value"
                               Title="Price" Color="#FF2563EB"/>
  <sgc:TsgcAvaloniaChart.Axes>
    <sgc:TsgcAvaloniaChartAxis Name="X" AxisType="catDateTime" Title="Time"/>
    <sgc:TsgcAvaloniaChartAxis Name="Y" Title="Price"/>
  </sgc:TsgcAvaloniaChart.Axes>
</sgc:TsgcAvaloniaChart>

A PDF viewer with thumbnails, bound to a TsgcPDFDocument of the view model:

MainWindow.axaml
<sgc:TsgcAvaloniaPDFThumbnailView x:Name="pdfThumbs" Viewer="{Binding #pdfViewer}"/>
<sgc:TsgcAvaloniaPDFViewer x:Name="pdfViewer" Grid.Column="1" Margin="8,0,0,0"
                           Document="{Binding Document}" ZoomMode="zmFitWidth"/>

The view model builds the document with sgcPDF, saves it to memory and parses it back, the way a document read from a file reaches the viewer:

ViewModels\TOverlapViewModels.cs
// a three page A4 report written with sgcPDF, saved to memory and parsed back,
// the way a document read from a file or a stream reaches the viewer
private static TsgcPDFDocument DoBuild()
{
    byte[] vBytes;
    using (TsgcPDFDocument oWriter = new TsgcPDFDocument())
    {
        for (int i = 1; i <= CS_PAGES; i++)
        {
            TsgcPDFPage oPage = oWriter.AddPage(595, 842);
            oPage.DrawRectangleFill(0, 772, 595, 70, 0.12, 0.23, 0.54);
            oPage.DrawTextColor("Quarterly report, page " + i + " of " + CS_PAGES, 50, 800,
                TsgcPDFStandardFont.sfHelveticaBold, 20, 1, 1, 1);
            oPage.DrawText("Built in code with sgcPDF (TsgcPDFDocument) and shown by TsgcAvaloniaPDFViewer.", 50,
                730, TsgcPDFStandardFont.sfHelvetica, 12);
            oPage.DrawText("Search, zoom, thumbnails and text selection work on it like on any PDF file.", 50,
                710, TsgcPDFStandardFont.sfHelvetica, 12);
            for (int k = 0; k < 6; k++)
                oPage.DrawRectangleFill(60 + k * 80, 420, 50, 40 + ((i * 3 + k * 5) % 9) * 25, 0.15, 0.39, 0.92);
            oPage.DrawRectangle(40, 40, 515, 712, 1.0);
        }
        using (MemoryStream oStream = new MemoryStream())
        {
            oWriter.SaveToStream(oStream);
            vBytes = oStream.ToArray();
        }
    }
    TsgcPDFDocument vResult = new TsgcPDFDocument();
    vResult.LoadFromBytes(vBytes);
    return vResult;
}

The rich text editor, bound as Markdown text (sgcRichEdit is Registered only):

Views\RichEditTab.axaml
<sgc:TsgcAvaloniaRichEdit x:Name="richEdit" Margin="8" DocumentFormat="refMarkdown"
                          DocumentText="{Binding Text}"/>
ViewModels\TOverlapViewModels.cs
public sealed class TRichTextViewModel : TViewModelBase
{
    private string FText =
        "# Release notes\n\nThe **sgcRichEdit** control is bound to this view model through " +
        "*DocumentText* in Markdown.\n\n- Styles, lists and tables\n- Links such as " +
        "[www.esegece.com](https://www.esegece.com)\n- HTML, RTF, Markdown and JSON in and out\n";

    /// <summary>The document as Markdown (DocumentFormat="refMarkdown"), written back on focus loss.</summary>
    public string Text
    {
        get { return FText; }
        set { DoSet(ref FText, value, "Text"); }
    }
}

The theme stays where it is

The application keeps FluentTheme. The sgcUI controls follow its theme variant, light, dark or the operating system setting, and switch live with the Fluent controls:

Program.cs
public override void Initialize()
{
    // the existing host theme stays: the sgcUI controls follow its theme variant
    Styles.Add(new FluentTheme());
    RequestedThemeVariant = ThemeVariant.Default;
}
ViewModels\TOverlapViewModels.cs
/// <summary>0 Follow host (RequestedThemeVariant Default), 1 Light, 2 Dark. The sgcUI controls
/// follow the Avalonia theme variant of the FluentTheme host (ThemeFollow utfHost).</summary>
public int ModeIndex
{
    get { return FModeIndex; }
    set
    {
        if (value < 0 || value > 2 || !DoSet(ref FModeIndex, value, "ModeIndex"))
            return;
        sgcUIApplication.ThemeFollow = TsgcUIThemeFollow.utfHost;
        sgcUIApplication.SetTheme(TsgcUITheme.utDefault);
        if (Application.Current != null)
            Application.Current.RequestedThemeVariant = value == 1 ? ThemeVariant.Light :
                value == 2 ? ThemeVariant.Dark : ThemeVariant.Default;
    }
}

Six Steps to Add sgcUI to an Avalonia App

The app keeps running after every step. Nothing that exists today has to be removed.

1

Keep the app as it is

Avalonia.Desktop, Avalonia.Themes.Fluent, your MVVM base classes and any Avalonia Pro controls stay.

2

Add the packages

The Avalonia flavour of each product you need, for example esegece.sgcPlanner.Avalonia, esegece.sgcPivotGrid.Avalonia, esegece.sgcDiagram.Avalonia, esegece.sgcDashboard.Avalonia, esegece.sgcGrid.Avalonia, esegece.sgcCharts.Avalonia or esegece.sgcPDF.Avalonia. The free Community packages add the .Community suffix, for example esegece.sgcPlanner.Avalonia.Community.

3

Add one namespace

Put xmlns:sgc="https://www.esegece.com/sgcui" on each view that uses sgcUI. One prefix covers every product.

4

Declare and bind

Declare the controls in XAML and bind them to the existing view models with ItemsSource, SelectedItem and field maps such as TsgcAvaloniaPlannerItemFields. Compiled bindings with x:DataType work.

5

Leave the theme alone

Keep Styles.Add(new FluentTheme()). The sgcUI controls follow RequestedThemeVariant, because sgcUIApplication.ThemeFollow is utfHost by default.

6

Swap an overlapping control, if you want

Where you replace a grid, chart, PDF viewer or rich text editor, change the control in the view and keep the view model. The members to bind are listed below.

Avalonia Pro package sgcUI control and the members to bind
Avalonia.Controls.TreeDataGridTsgcAvaloniaGrid with ItemsSource, SelectedItem, KeyMember, AutoGenerateColumns="False" and TsgcAvaloniaGridColumn (FieldName, Caption, DataType, DisplayFormat, Alignment)
Avalonia.Controls.ChartsTsgcAvaloniaChart with TsgcAvaloniaChartSeries (ItemsSource, XMember, YMember, SeriesKind) and TsgcAvaloniaChartAxis (Name, AxisType="catDateTime")
Avalonia.Controls.PdfViewerTsgcAvaloniaPDFViewer (Document or Source, ZoomMode, PageIndex, PageCount) and TsgcAvaloniaPDFThumbnailView.Viewer
Avalonia.Controls.RichTextEditorTsgcAvaloniaRichEdit (DocumentText two way, DocumentFormat refJSON, refHTML, refMarkdown, refRTF or refText, PlainText)

The left column names packages only. The Avalonia Pro members were not compared, so plan the view changes against your own XAML.

What Avalonia Pro Has That sgcUI Does Not

If you need one of these, keep Avalonia Pro for it. sgcUI runs next to it.

Before You Plan

Edition limits and naming that matter in an Avalonia project.

AvaloniaProAlternative

An ordinary Avalonia 12 window with FluentTheme, a theme selector and two sets of tabs: "Not in Avalonia Pro" (scheduler and Kanban, pivot grid, diagram, dashboard) and "Also in Avalonia Pro" (grid, chart, PDF viewer, rich text).

Where it is

In the sgcUI .NET demos, folder Suite\AvaloniaProAlternative of the sgcUI_Demos.sln solution, with a readme.html. In the demo download the project references the sgcUI NuGet packages.

How to run it

dotnet build sgcUIAvaloniaProAlternative.csproj -c Release for the Registered edition, and add -p:SgcCommunity=true for the Community edition, where the Diagram and Rich text tabs are hidden. Then run sgcUIAvaloniaProAlternative.exe.

Self test

sgcUIAvaloniaProAlternative.exe /selftest [file.txt] shows every tab, runs the checks, writes one PASS or FAIL line per check and exits with the number of failed checks. All 52 checks pass in the Registered edition and all 47 in the Community edition.

To be fair to both: Avalonia is the framework that sgcUI runs on, and this page does not ask you to leave it. Avalonia Pro gives you premium components and tooling in one subscription, and some of them have no sgcUI counterpart. sgcUI gives you planning, analysis, diagram, dashboard, wizard, map and report controls that are not listed on the Avalonia Pro page, the same controls for WinForms and WPF, and full source code with a per developer licence. Many teams will use both. For the products and editions see the sgcUI product page.

Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

Add the First Control Today

Add the free Community packages from NuGet, or the Registered packages for every feature and full source code, and open the AvaloniaProAlternative sample next to your app.