Avalonia Scheduler, Gantt und Kanban als native Steuerelemente

sgcPlanner bringt einen Kalender-Scheduler, ein Gantt-Diagramm und ein Kanban-Board als native Steuerelemente nach Avalonia 12: TsgcAvaloniaScheduler, TsgcAvaloniaGantt und TsgcAvaloniaKanban. Sie laufen unter Windows, Linux und macOS, binden in XAML an Ihre View-Models und teilen sich eine Aufgabenliste, sodass eine auf dem Board abgelegte Karte den Balken im Gantt und den Termin im Kalender verschiebt. Keine WPF-Runtime dazwischen, und dieselben Steuerelemente gibt es für WinForms, WPF und Delphi.

Eine Planungssuite in Ihrer Avalonia-App

Drei Steuerelemente über einem TsgcPlannerData-Objekt. Platzieren Sie eines, zwei oder alle drei in Ihren Fenstern.

ProjectPlanner-Demo: dieselben Aufgaben auf einem Kanban-Board, in einem Gantt-Diagramm und in einem Scheduler
Die ProjectPlanner-Demo: ein Projekt auf einem Kanban-Board, in einem Gantt-Diagramm und in einem Scheduler. ProjectPlannerAvalonia zeigt dasselbe Projekt in einem Avalonia-Fenster.

Kalenderansichten

View schaltet TsgcAvaloniaScheduler zwischen Tag, Arbeitswoche, Woche, Monat, Agenda, der Ressourcen-Zeitachse und dem Jahr um, zwölf Minimonaten, in denen ein Doppelklick auf einen Tag ihn in der Tagesansicht öffnet. Options.GroupByResource gibt jeder Person in den Tagesansichten eine Gruppe von Spalten.

Ziehen zum Erstellen und Bearbeiten

Ein Ziehen auf einem leeren Bereich des Zeitrasters erstellt einen an Options.SlotMinutes ausgerichteten Termin und löst OnItemCreate mit Beginn, Ende und Ressource aus. Termine lassen sich mit der Maus verschieben und in der Größe ändern, und mit InplaceEdit bearbeitet F2 den Titel direkt im Termin.

Wiederholung

Ein Element speichert eine iCalendar-Regel wie FREQ=WEEKLY;BYDAY=TU in RecurrenceRule, und die Daten erweitern die Serie für den sichtbaren Zeitraum zu Einzelterminen. Das Ziehen eines Einzeltermins löst OnRecurrenceEdit aus, wo Sie prsOccurrence, prsSeries oder prsCancel wählen. Standardmäßig verschiebt das Ziehen nur diesen Einzeltermin.

Erinnerungen und Zeitzonen

TsgcPlannerReminders meldet die Elemente, deren ReminderMinutes fällig sind, mit Dismiss und Snooze. Jedes Element kann seine eigene TimeZone tragen, und Data.DisplayTimeZone zeigt den gesamten Kalender in der vom Benutzer gewählten Zone.

Gantt-Diagramm

TsgcAvaloniaGantt hat ein Aufgabenraster mit Spalten, Sammelvorgängen, Meilensteinen, Fortschritt, Abhängigkeiten mit automatischer Planung, dem kritischen Pfad und Baselines. TimeScale.TierCount liefert eine dreistufige Zeitskala, und ShowHistogram fügt einen Ressourcenauslastungsbereich hinzu, der Überlastung in der kritischen Farbe zeichnet.

Kanban-Board

TsgcAvaloniaKanban zeigt die Elemente als Karten in Spalten nach Status. Beim Ablegen wird MoveItem auf den Daten aufgerufen, was alle Ansichten genau einmal benachrichtigt, sodass sich Gantt und Scheduler mit dem neuen Status neu zeichnen. Swimlanes und WIP-Limits sind in der Registered Edition enthalten.

Ressourcen und Kapazität

Ressourcen haben einen Namen, eine Farbe und Initialen. Neu in sgcUI 2026.11: TsgcPlannerResource.Capacity skaliert die Auslastung im Histogramm, verschiebt die Kapazitätslinie und markiert die Überlastung darüber, und wird in JSON sowie als MaxUnits in Microsoft-Project-Dateien gespeichert.

Rückgängig und Wiederholen

Data.Undo nimmt ein Ziehen oder eine Bearbeitung in einem Schritt mit Undo und Redo zurück. CanUndo, CanRedo, UndoCaption und RedoCaption steuern Ihre Schaltflächen und deren Tooltips.

Import, Export und Druck

Die Daten werden als JSON geladen und gespeichert und aus einer DataTable gelesen. Die Registered Edition ergänzt Import und Export von iCalendar und MS Project XML (MSPDI). Drucken mit Vorschau und Headless-Ausgabe als PNG und SVG sind in jeder Edition enthalten.

MVVM, Themes, Sprachen und Kalendersynchronisierung

Der Planner folgt den Konventionen einer Avalonia-Anwendung, statt von Ihnen eigene zu verlangen.

MVVM-Binding in XAML

ItemsSource, ResourcesSource und DependenciesSource nehmen Ihre eigenen Collections entgegen, TsgcAvaloniaPlannerItemFields ordnet die Membernamen Ihrer Klasse zu, und SelectedItem bindet in beide Richtungen. Ein Ziehen in einer beliebigen Ansicht schreibt die neuen Daten oder den neuen Status in Ihre Objekte zurück. Ein einziges Präfix xmlns:sgc="https://www.esegece.com/sgcui" deckt alle sgcUI-Steuerelemente ab.

Themes, Fluent inklusive

Die Steuerelemente folgen der Avalonia-Theme-Variante Ihrer App, hell oder dunkel. Neu in sgcUI 2026.11: Unter dem Fluent-Preset übernehmen sie die Farben des Avalonia-FluentTheme, solange sie dem Host folgen, mit den Eckenradien und dem Fokusring von Windows 11.

Die Steuerelemente beachten eine FlowDirection von rechts nach links, und das Gantt kann seine Zeitachse mit MirrorTimeline spiegeln oder von links nach rechts belassen. Jedes Steuerelement hat einen Avalonia-Automation-Peer und Tastaturnavigation, sodass Screenreader die Ansichten, Elemente und Zeitfenster ansagen. Barrierefreiheit ist in jeder Edition standardmäßig aktiv.

12 Sprachen

Neu in sgcUI 2026.11: Die Texte für Endbenutzer stammen aus eingebetteten Sprachpaketen für Englisch, Spanisch, Deutsch, Französisch, Italienisch, Niederländisch, Polnisch, Portugiesisch (Brasilien), Türkisch, Japanisch, Koreanisch und Chinesisch. sgcUILang.SetLanguage nimmt ein Gebietsschema oder "auto" für die aktuelle UI-Kultur entgegen.

Outlook-, Google- und CalDAV-Synchronisierung

Die optionale Brücke esegece.sgcPlanner.sgcWebSockets der Registered Edition hält die Daten in beide Richtungen synchron mit Outlook-Kalendern von Microsoft 365 und Outlook.com über Microsoft Graph (TsgcPlannerGraphSync), mit Google Calendar (TsgcPlannerGoogleSync) und mit jedem CalDAV-Server wie Nextcloud, iCloud, Fastmail oder Radicale (TsgcPlannerCalDAVSync). TsgcPlannerICalSubscription führt eine schreibgeschützte iCalendar-URL zusammen. Die Brücke verwendet sgcWebSockets.

Smart Paste

Strg+Umschalt+V im Scheduler macht aus einem eingefügten Text einen Termin. Zeilen wie "Name: Wert" liest der eingebaute Parser, und AIProvider nimmt einen TsgcUIAIEventProvider entgegen, der für Freitext wie eine E-Mail das LLM Ihrer Wahl aufruft. Smart Paste ist auch in der Community Edition enthalten.

Ein Scheduler und ein Gantt, gebunden an ein View-Model

Kopiert aus einer kleinen Avalonia-12-App auf net8.0 mit FluentTheme und kompilierten Bindings, ohne die using-Zeilen und den Namespace. Die App kompiliert mit 0 Warnungen und 0 Fehlern gegen den Registered- und den Community-Build von sgcPlanner.

Das View-Model: einfache Klassen

Ihre eigenen Typen, nichts muss geerbt werden. Ein tägliches Stand-up ist ein einzelnes Element mit einer Wiederholungsregel.

TTeamViewModel.cs
public class TMeeting
{
    public string Key { get; set; }
    public string Subject { get; set; }
    public DateTime Begin { get; set; }
    public DateTime End { get; set; }
    public string Owner { get; set; }
    public string Rule { get; set; }
}

public class TPerson
{
    public string Code { get; set; }
    public string Label { get; set; }
}

public class TTeamViewModel
{
    public ObservableCollection<TMeeting> Meetings { get; } = new ObservableCollection<TMeeting>();
    public ObservableCollection<TPerson> People { get; } = new ObservableCollection<TPerson>();

    public TTeamViewModel()
    {
        People.Add(new TPerson { Code = "ann", Label = "Ann" });
        People.Add(new TPerson { Code = "bob", Label = "Bob" });
        DateTime vMonday = DateTime.Today.AddDays(-(((int)DateTime.Today.DayOfWeek + 6) % 7));
        Meetings.Add(new TMeeting { Key = "m1", Subject = "Stand-up", Owner = "ann",
            Begin = vMonday.AddHours(9), End = vMonday.AddHours(9.25),
            Rule = "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR" });
        Meetings.Add(new TMeeting { Key = "m2", Subject = "Design review", Owner = "bob",
            Begin = vMonday.AddDays(2).AddHours(14), End = vMonday.AddDays(2).AddHours(15) });
    }
}

Das Fenster: zwei Ansichten über denselben Collections

Die Feldzuordnungen sagen den Steuerelementen, welches Member die ID, den Titel, die Daten, den Besitzer und die Regel enthält.

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:local="using:TeamCalendar"
        x:Class="TeamCalendar.MainWindow"
        x:DataType="local:TTeamViewModel"
        Title="Team calendar" Width="1100" Height="720">
  <TabControl>
    <TabItem Header="Calendar">
      <sgc:TsgcAvaloniaScheduler x:Name="scheduler" View="psvWorkWeek" InplaceEdit="True"
                                 ItemsSource="{Binding Meetings}" ResourcesSource="{Binding People}">
        <sgc:TsgcAvaloniaScheduler.ItemFields>
          <sgc:TsgcAvaloniaPlannerItemFields IdField="Key" TitleField="Subject" StartField="Begin"
                                             FinishField="End" ResourcesField="Owner"
                                             RecurrenceField="Rule"/>
        </sgc:TsgcAvaloniaScheduler.ItemFields>
        <sgc:TsgcAvaloniaScheduler.ResourceFields>
          <sgc:TsgcAvaloniaPlannerResourceFields IdField="Code" NameField="Label"/>
        </sgc:TsgcAvaloniaScheduler.ResourceFields>
      </sgc:TsgcAvaloniaScheduler>
    </TabItem>
    <TabItem Header="Gantt">
      <sgc:TsgcAvaloniaGantt x:Name="gantt" ShowHistogram="True" ShowToday="True"
                             ItemsSource="{Binding Meetings}" ResourcesSource="{Binding People}">
        <sgc:TsgcAvaloniaGantt.ItemFields>
          <sgc:TsgcAvaloniaPlannerItemFields IdField="Key" TitleField="Subject" StartField="Begin"
                                             FinishField="End" ResourcesField="Owner"/>
        </sgc:TsgcAvaloniaGantt.ItemFields>
        <sgc:TsgcAvaloniaGantt.ResourceFields>
          <sgc:TsgcAvaloniaPlannerResourceFields IdField="Code" NameField="Label"/>
        </sgc:TsgcAvaloniaGantt.ResourceFields>
      </sgc:TsgcAvaloniaGantt>
    </TabItem>
  </TabControl>
</Window>

Der Code-Behind: Optionen und das Create-Ereignis

Gruppieren Sie die Arbeitswoche nach Person, richten Sie neue Termine an 15 Minuten aus, benennen Sie den durch Ziehen erstellten Termin und geben Sie dem Gantt eine dreistufige Zeitskala.

MainWindow.axaml.cs
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        scheduler.Options.GroupByResource = true;
        scheduler.Options.SlotMinutes = 15;
        // a drag on an empty slot creates a meeting: name it here
        scheduler.OnItemCreate = DoItemCreate;
        // three tier timescale over the Gantt bars
        gantt.TimeScale.TierCount = 3;
    }

    private void DoItemCreate(object aSender, DateTime aStart, DateTime aFinish,
        string aResourceId, ref string aTitle, ref bool aAccept)
    {
        aTitle = "New meeting";
    }
}

Das Projekt referenziert Avalonia.Desktop und Avalonia.Themes.Fluent 12.1.4 sowie esegece.sgcPlanner.Avalonia, oder esegece.sgcPlanner.Avalonia.Community für die kostenlose Edition, in der das Stand-up nur einmal erscheint, weil Wiederholung ein Registered-Feature ist. Die Anwendung fügt new FluentTheme() zu ihren Styles hinzu und setzt DataContext = new TTeamViewModel() am Fenster.

Wo es läuft

Ein Planner-Modell, dieselben Ansichten in jedem Host.

Host Steuerelemente Zielplattformen
Avalonia 12TsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanbannet8.0, net9.0, net10.0 unter Windows, Linux und macOS
WinForms und WPFTsgcWinFormsScheduler, Gantt und Kanban sowie die WPF-Pendants.NET, in derselben Lizenz wie Avalonia
Delphi und C++BuilderTsgcVCLScheduler, TsgcFMXScheduler und ihre Gantt- und Kanban-PendantsVCL und FireMonkey, in der Delphi-Edition von sgcPlanner
HeadlessTsgcPlannerRendererPNG- und SVG-Ausgabe ohne Fenster, unter Windows, Linux und macOS

Die Avalonia-Steuerelemente werden mit SkiaSharp auf der Avalonia-Steuerelementbasis von sgcUICore gezeichnet. Die Demos TeamSchedulerAvalonia und ProjectPlannerAvalonia benötigen das .NET SDK 8.0 oder neuer und laufen unter Windows, Linux oder macOS.

Drei Wege zu einem Scheduler unter Avalonia

Stand 2026-10-20, die Quellen finden Sie in den Leitfäden Avalonia Pro und WinForms und WPF nach Avalonia.

  Eine WPF-Suite auf Avalonia XPF Avalonia Pro sgcPlanner für Avalonia
Was es istein WPF-Scheduler, der auf XPF läuft, das sein Hersteller "eine binärkompatible WPF-Runtime" nenntdie Premium-Komponenten von Avalonianative Avalonia-12-Steuerelemente
Scheduler, Gantt, Kanbandie der WPF-Suite, mit den Bedingungen der XPF-Hinweise zu Drittanbieter-Bibliotheken, zum Beispiel Win32-API-Shims für DevExpress-Steuerelementenicht auf der Avalonia-Pro-Seite aufgeführtTsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanban
LizenzXPF pro Anwendung, ab 9.500 EUR (Internal) und 29.500 EUR (Business), zuzüglich der Lizenz der WPF-Suite899 EUR pro Arbeitsplatz und Jahrpro Entwickler: sgcPlanner .NET €249 oder sgcUI .NET Enterprise €699, ohne Gebühr pro Anwendung
Quellcode vollständiger Quellcode der Premium-Steuerelemente in Enterprisevollständiger C#-Quellcode in jeder Registered-Lizenz
Kostenlose Stufe Community, seit 2026-04-07 für Neuanmeldungen nur nicht-kommerzielle NutzungCommunity-NuGet-Pakete, auch für kommerzielle Nutzung unter 1.000.000 EUR Umsatz und mit bis zu fünf Entwicklern

Fairerweise zu den anderen Wegen: XPF will eine bestehende WPF-Anwendung weitgehend unverändert unter macOS und Linux ausführen, und das leistet sgcPlanner nicht. Avalonia Pro liefert Premium-Komponenten und Hersteller-Tools wie Hot Reload und DevTools, die sgcUI nicht mitbringt. sgcPlanner läuft im selben Fenster neben Avalonia-Pro-Steuerelementen.

Community oder Registered

Beide Editionen haben dieselben drei Steuerelemente. Die Registered Edition ergänzt die erweiterten Planungsfunktionen und den Quellcode.

Community, kostenlos

esegece.sgcPlanner.Avalonia.Community auf NuGet, kostenlos in kommerziellen und nicht-kommerziellen Projekten für Einzelpersonen und Organisationen mit weniger als 1.000.000 EUR Jahresumsatz und höchstens fünf Entwicklern. Ansichten Tag, Arbeitswoche, Woche, Monat und Agenda, Gantt und Kanban mit Ziehen, Sammelvorgänge, Meilensteine, Fortschritt, Gruppierung nach Ressource, DataTable- und JSON-Daten, Smart Paste, Drucken und Headless-Ausgabe als PNG und SVG.

Registered

esegece.sgcPlanner.Avalonia, im Einzelpaket sgcPlanner .NET €249 und in sgcUI .NET Enterprise €699 pro Entwickler. Ergänzt Wiederholung, die Ressourcen-Zeitachse, Abhängigkeiten mit automatischer Planung, den kritischen Pfad, Baselines, Kanban-Swimlanes und WIP-Limits, iCalendar und MS Project XML, die Kalender-Synchronisierungsbrücke, vollständigen C#-Quellcode und kostenlose Binärweitergabe.

Zwei Avalonia-Demos mit Selbsttest

Beide laufen mit dotnet run, und dotnet run -- --test result.txt schreibt pro Prüfung eine PASS- oder FAIL-Zeile und beendet sich mit der Anzahl der fehlgeschlagenen Prüfungen.

TeamSchedulerAvalonia

Drei Wochen Teambesprechungen für fünf Personen: jede Ansicht, Bearbeitung des Titels direkt im Termin, Rückgängig und Wiederholen, Erinnerungen mit Dismiss und Snooze, Zeitzonen pro Element, wiederkehrende Stand-ups und Syncs, Ziehen zum Erstellen, Gruppierung nach Ressource und Smart Paste.

ProjectPlannerAvalonia

Ein Website-Relaunch-Projekt, gleichzeitig in einem Gantt-Diagramm, einem Kanban-Board und einer Woche dargestellt, alles an dieselben Daten gebunden: Ziehen Sie eine Karte von To do nach Done, und der Gantt-Balken und der Kalendertermin werden grün. Mit der dreistufigen Zeitskala, dem Ressourcenhistogramm und Rückgängig.

Die sgcUI-Demos ansehen oder auf der sgcPlanner-Produktseite über jede Funktion lesen.

Fragen zum Avalonia Scheduler

Ist der Scheduler ein natives Avalonia-Steuerelement oder ein WPF-Steuerelement auf einer Kompatibilitätsschicht?

Es ist ein natives Avalonia-Steuerelement. TsgcAvaloniaScheduler, TsgcAvaloniaGantt und TsgcAvaloniaKanban basieren auf Avalonia und Avalonia.Skia 12 und werden mit SkiaSharp gezeichnet, im Paket esegece.sgcPlanner.Avalonia für net8.0, net9.0 und net10.0. Es liegt keine WPF-Runtime dazwischen, und die Steuerelemente laufen unter Windows, Linux und macOS.

Kann ich den Scheduler in XAML an mein eigenes View-Model binden?

Ja. ItemsSource, ResourcesSource und DependenciesSource nehmen jedes IEnumerable entgegen, zum Beispiel eine ObservableCollection Ihrer eigenen Klasse, und TsgcAvaloniaPlannerItemFields ordnet Ihre Membernamen der ID, dem Titel, dem Beginn, dem Ende, den Ressourcen, dem Status, der Wiederholung und den übrigen Elementfeldern zu. SelectedItem bindet in beide Richtungen, und ein Ziehen oder eine Bearbeitung im Steuerelement schreibt die neuen Werte in Ihre Objekte zurück. Kompilierte Bindings mit x:DataType funktionieren.

Gibt es eine kostenlose Edition des Avalonia Schedulers?

Ja. esegece.sgcPlanner.Avalonia.Community ist kostenlos für Einzelpersonen und Organisationen mit weniger als 1.000.000 EUR Jahresumsatz und höchstens fünf Entwicklern. Sie enthält die Ansichten Tag, Arbeitswoche, Woche, Monat und Agenda, das Gantt und das Kanban-Board. Wiederholung, die Ressourcen-Zeitachse, Abhängigkeiten mit automatischer Planung, der kritische Pfad, Baselines, Kanban-Swimlanes und WIP-Limits sowie der Austausch von iCalendar und MS Project XML erfordern die Registered Edition.

Kann sich der Avalonia Scheduler mit Outlook, Google Calendar oder CalDAV synchronisieren?

Ja, über das optionale Brückenpaket esegece.sgcPlanner.sgcWebSockets der Registered Edition, das sgcWebSockets verwendet. TsgcPlannerGraphSync hält die Daten in beide Richtungen synchron mit einem Outlook-Kalender von Microsoft 365 oder Outlook.com über Microsoft Graph, TsgcPlannerGoogleSync mit einem Google-Kalender und TsgcPlannerCalDAVSync mit einem CalDAV-Kalender wie Nextcloud, iCloud, Fastmail oder Radicale. TsgcPlannerICalSubscription führt eine schreibgeschützte iCalendar-URL zusammen. Die Brücke arbeitet auf dem Datenobjekt und bedient daher die Avalonia-Steuerelemente ebenso wie die WinForms- und WPF-Steuerelemente.

Welche sgcUI-Edition enthält sgcPlanner für Avalonia?

sgcPlanner .NET ist in der Edition sgcUI .NET Enterprise enthalten und wird auch als Einzelpaket verkauft. Beide Lizenzen decken WinForms, WPF und Avalonia ab, mit vollständigem C#-Quellcode und kostenloser Binärweitergabe.

Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Fügen Sie Ihrer Avalonia-App einen Scheduler hinzu

Beginnen Sie mit dem kostenlosen Community-Paket von NuGet oder dem Registered-Paket für Wiederholung, Zeitachse, Kalendersynchronisierung und vollständigen Quellcode, und öffnen Sie die Demo TeamSchedulerAvalonia neben Ihrer App.