Planificateur Avalonia, Gantt et Kanban en contrôles natifs

sgcPlanner apporte à Avalonia 12 un planificateur de calendrier, un diagramme de Gantt et un tableau Kanban sous forme de contrôles natifs : TsgcAvaloniaScheduler, TsgcAvaloniaGantt et TsgcAvaloniaKanban. Ils fonctionnent sous Windows, Linux et macOS, se lient à vos view models en XAML et partagent une seule liste de tâches, si bien qu'une carte déposée sur le tableau déplace la barre du Gantt et l'événement du calendrier. Aucun runtime WPF entre les deux, et les mêmes contrôles existent pour WinForms, WPF et Delphi.

Une suite de planification dans votre application Avalonia

Trois contrôles sur un même objet TsgcPlannerData. Placez-en un, deux ou les trois dans vos fenêtres.

Démo ProjectPlanner : les mêmes tâches sur un tableau Kanban, un diagramme de Gantt et un planificateur
La démo ProjectPlanner : un projet sur un tableau Kanban, un diagramme de Gantt et un planificateur. ProjectPlannerAvalonia montre le même projet dans une fenêtre Avalonia.

Vues calendrier

View fait passer TsgcAvaloniaScheduler entre jour, semaine de travail, semaine, mois, agenda, la chronologie des ressources et l'année, douze mini-mois où un double-clic sur un jour l'ouvre dans la vue jour. Options.GroupByResource donne à chaque personne un groupe de colonnes dans les vues jour.

Glisser pour créer et modifier

Un glissement sur une zone vide de la grille horaire crée un événement aligné sur Options.SlotMinutes et déclenche OnItemCreate avec le début, la fin et la ressource. Les événements se déplacent et se redimensionnent à la souris, et avec InplaceEdit F2 modifie le titre sur place.

Récurrence

Un élément conserve une règle iCalendar telle que FREQ=WEEKLY;BYDAY=TU dans RecurrenceRule, et les données développent la série en occurrences pour la période visible. Le glissement d'une occurrence déclenche OnRecurrenceEdit, où vous choisissez prsOccurrence, prsSeries ou prsCancel. Par défaut, le glissement ne déplace que cette occurrence.

Rappels et fuseaux horaires

TsgcPlannerReminders signale les éléments dont les ReminderMinutes sont échus, avec Dismiss et Snooze. Chaque élément peut porter son propre TimeZone, et Data.DisplayTimeZone affiche tout le calendrier dans le fuseau choisi par l'utilisateur.

Diagramme de Gantt

TsgcAvaloniaGantt propose une grille de tâches avec colonnes, tâches récapitulatives, jalons, avancement, dépendances avec planification automatique, chemin critique et lignes de base. TimeScale.TierCount donne une échelle de temps à trois niveaux, et ShowHistogram ajoute un volet de charge des ressources qui peint la surallocation dans la couleur critique.

Tableau Kanban

TsgcAvaloniaKanban affiche les éléments sous forme de cartes dans des colonnes par statut. Un dépôt appelle MoveItem sur les données, ce qui notifie chaque vue une seule fois, de sorte que le Gantt et le planificateur se redessinent avec le nouveau statut. Les couloirs et les limites WIP sont dans l'édition Registered.

Ressources et capacité

Les ressources ont un nom, une couleur et des initiales. Nouveauté de sgcUI 2026.11, TsgcPlannerResource.Capacity met à l'échelle la charge dans l'histogramme, déplace la ligne de capacité et marque la surallocation au-dessus, et il est enregistré en JSON et comme MaxUnits dans les fichiers Microsoft Project.

Annuler et rétablir

Data.Undo annule un glissement ou une modification en une seule étape avec Undo et Redo. CanUndo, CanRedo, UndoCaption et RedoCaption pilotent vos boutons et leurs info-bulles.

Importer, exporter et imprimer

Les données se chargent et s'enregistrent en JSON et se lisent depuis une DataTable. L'édition Registered ajoute l'import et l'export iCalendar et MS Project XML (MSPDI). L'impression avec aperçu et la sortie headless en PNG et SVG sont dans toutes les éditions.

MVVM, thèmes, langues et synchronisation du calendrier

Le planificateur suit les conventions d'une application Avalonia au lieu de vous demander d'adopter les siennes.

Binding MVVM en XAML

ItemsSource, ResourcesSource et DependenciesSource acceptent vos propres collections, TsgcAvaloniaPlannerItemFields associe les noms de membres de votre classe, et SelectedItem se lie dans les deux sens. Un glissement dans n'importe quelle vue réécrit les nouvelles dates ou le nouveau statut dans vos objets. Un seul préfixe xmlns:sgc="https://www.esegece.com/sgcui" couvre tous les contrôles sgcUI.

Thèmes, Fluent inclus

Les contrôles suivent la variante de thème Avalonia de votre application, claire ou sombre. Nouveauté de sgcUI 2026.11, avec le préréglage Fluent ils prennent les couleurs du FluentTheme d'Avalonia tout en suivant l'hôte, avec les rayons de coin et l'anneau de focus de Windows 11.

Droite à gauche et accessibilité

Les contrôles respectent un FlowDirection de droite à gauche, et le Gantt peut inverser sa chronologie ou la garder de gauche à droite avec MirrorTimeline. Chaque contrôle dispose d'un automation peer Avalonia et d'une navigation au clavier, si bien que les lecteurs d'écran annoncent les vues, les éléments et les créneaux. L'accessibilité est activée par défaut dans toutes les éditions.

12 langues

Nouveauté de sgcUI 2026.11, les textes destinés à l'utilisateur final proviennent de packs de langue intégrés pour l'anglais, l'espagnol, l'allemand, le français, l'italien, le néerlandais, le polonais, le portugais (Brésil), le turc, le japonais, le coréen et le chinois. sgcUILang.SetLanguage accepte une locale ou "auto" pour la culture actuelle de l'interface.

Synchronisation Outlook, Google et CalDAV

La passerelle optionnelle esegece.sgcPlanner.sgcWebSockets de l'édition Registered maintient les données synchronisées dans les deux sens avec les calendriers Outlook de Microsoft 365 et Outlook.com via Microsoft Graph (TsgcPlannerGraphSync), avec Google Calendar (TsgcPlannerGoogleSync) et avec tout serveur CalDAV tel que Nextcloud, iCloud, Fastmail ou Radicale (TsgcPlannerCalDAVSync). TsgcPlannerICalSubscription fusionne une URL iCalendar en lecture seule. La passerelle utilise sgcWebSockets.

Smart Paste

Ctrl+Maj+V dans le planificateur transforme un texte collé en réunion. Les lignes de type "Nom : valeur" sont lues par l'analyseur intégré, et AIProvider accepte un TsgcUIAIEventProvider qui appelle le LLM de votre choix pour du texte libre comme un e-mail. Smart Paste est aussi dans l'édition Community.

Un planificateur et un Gantt liés à un même view model

Copié d'une petite application Avalonia 12 sur net8.0 avec FluentTheme et des bindings compilés, sans les lignes using ni le namespace. L'application compile avec 0 avertissement et 0 erreur face à la build Registered et à la build Community de sgcPlanner.

Le view model : des classes simples

Vos propres types, rien à hériter. Un stand-up quotidien est un seul élément avec une règle de récurrence.

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) });
    }
}

La fenêtre : deux vues sur les mêmes collections

Les tables de champs indiquent aux contrôles quel membre contient l'identifiant, le titre, les dates, le propriétaire et la règle.

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>

Le code behind : options et événement de création

Groupez la semaine de travail par personne, alignez les nouveaux événements sur 15 minutes, nommez l'événement créé par un glissement et donnez au Gantt une échelle de temps à trois niveaux.

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";
    }
}

Le projet référence Avalonia.Desktop et Avalonia.Themes.Fluent 12.1.4 ainsi que esegece.sgcPlanner.Avalonia, ou esegece.sgcPlanner.Avalonia.Community pour l'édition gratuite, où le stand-up n'apparaît qu'une fois parce que la récurrence est une fonction Registered. L'application ajoute new FluentTheme() à ses styles et définit DataContext = new TTeamViewModel() sur la fenêtre.

Où il fonctionne

Un seul modèle de planificateur, les mêmes vues dans chaque hôte.

Hôte Contrôles Cibles
Avalonia 12TsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanbannet8.0, net9.0, net10.0 sous Windows, Linux et macOS
WinForms et WPFTsgcWinFormsScheduler, Gantt et Kanban, et les équivalents WPF.NET, dans la même licence qu'Avalonia
Delphi et C++BuilderTsgcVCLScheduler, TsgcFMXScheduler et leurs équivalents Gantt et KanbanVCL et FireMonkey, dans l'édition Delphi de sgcPlanner
HeadlessTsgcPlannerRendererSortie PNG et SVG sans fenêtre, sous Windows, Linux et macOS

Les contrôles Avalonia sont dessinés avec SkiaSharp sur la base de contrôles Avalonia de sgcUICore. Les démos TeamSchedulerAvalonia et ProjectPlannerAvalonia nécessitent le SDK .NET 8.0 ou plus récent et fonctionnent sous Windows, Linux ou macOS.

Trois façons d'obtenir un planificateur sur Avalonia

Tel que lu le 2026-10-20, consultez les guides Avalonia Pro et WinForms et WPF vers Avalonia pour les sources.

  Une suite WPF sur Avalonia XPF Avalonia Pro sgcPlanner pour Avalonia
Ce que c'estun planificateur WPF exécuté sur XPF, que son éditeur décrit comme "un runtime WPF compatible binaire"les composants Avalonia premiumcontrôles Avalonia 12 natifs
Planificateur, Gantt, Kanbanceux de la suite WPF, avec les conditions des notes XPF sur les bibliothèques tierces, par exemple des shims d'API Win32 pour les contrôles DevExpressnon listés sur la page Avalonia ProTsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanban
LicenceXPF par application, à partir de 9 500 EUR (Internal) et 29 500 EUR (Business), plus la licence de la suite WPF899 EUR par poste et par anpar développeur : sgcPlanner .NET €249, ou sgcUI .NET Enterprise €699, sans frais par application
Code source code source complet des contrôles premium dans Enterprisecode source C# complet dans chaque licence Registered
Niveau gratuit Community, usage non commercial uniquement pour les nouvelles inscriptions depuis le 2026-04-07Paquets NuGet Community, aussi pour un usage commercial sous 1 000 000 EUR de chiffre d'affaires et jusqu'à cinq développeurs

Pour être juste envers les autres voies : XPF vise à exécuter une application WPF existante sous macOS et Linux en grande partie telle quelle, et sgcPlanner ne fait pas cela. Avalonia Pro apporte des composants premium et des outils d'éditeur comme Hot Reload et DevTools, que sgcUI ne fournit pas. sgcPlanner fonctionne à côté des contrôles Avalonia Pro dans la même fenêtre.

Community ou Registered

Les deux éditions ont les mêmes trois contrôles. L'édition Registered ajoute les fonctions de planification avancées et le code source.

Community, gratuite

esegece.sgcPlanner.Avalonia.Community sur NuGet, gratuit dans les projets commerciaux et non commerciaux pour les particuliers et les organisations réalisant moins de 1 000 000 EUR de chiffre d'affaires annuel et comptant au plus cinq développeurs. Vues jour, semaine de travail, semaine, mois et agenda, Gantt et Kanban avec glisser-déposer, tâches récapitulatives, jalons, avancement, regroupement par ressource, données DataTable et JSON, Smart Paste, impression et sortie headless en PNG et SVG.

Registered

esegece.sgcPlanner.Avalonia, dans le paquet individuel sgcPlanner .NET €249 et dans sgcUI .NET Enterprise €699 par développeur. Ajoute la récurrence, la chronologie des ressources, les dépendances avec planification automatique, le chemin critique, les lignes de base, les couloirs et les limites WIP de Kanban, iCalendar et MS Project XML, la passerelle de synchronisation de calendrier, le code source C# complet et la redistribution binaire gratuite.

Deux démos Avalonia avec auto-vérification

Les deux s'exécutent avec dotnet run, et dotnet run -- --test result.txt écrit une ligne PASS ou FAIL par vérification et se termine avec le nombre de vérifications échouées.

TeamSchedulerAvalonia

Trois semaines de réunions d'équipe pour cinq personnes : toutes les vues, modification du titre sur place, annuler et rétablir, rappels avec Dismiss et Snooze, fuseaux horaires par élément, stand-ups et syncs récurrents, glisser pour créer, regroupement par ressource et Smart Paste.

ProjectPlannerAvalonia

Un projet de refonte de site web affiché en même temps dans un diagramme de Gantt, un tableau Kanban et une semaine, le tout lié aux mêmes données : faites glisser une carte de To do vers Done et la barre du Gantt et l'événement du calendrier passent au vert. Avec l'échelle de temps à trois niveaux, l'histogramme des ressources et l'annulation.

Voir les démos sgcUI ou lire le détail de chaque fonction sur la page produit sgcPlanner.

Questions sur le planificateur Avalonia

Le planificateur est-il un contrôle Avalonia natif ou un contrôle WPF sur une couche de compatibilité ?

C'est un contrôle Avalonia natif. TsgcAvaloniaScheduler, TsgcAvaloniaGantt et TsgcAvaloniaKanban sont construits sur Avalonia et Avalonia.Skia 12 et dessinés avec SkiaSharp, dans le paquet esegece.sgcPlanner.Avalonia pour net8.0, net9.0 et net10.0. Il n'y a aucun runtime WPF entre les deux, et les contrôles fonctionnent sous Windows, Linux et macOS.

Puis-je lier le planificateur à mon propre view model en XAML ?

Oui. ItemsSource, ResourcesSource et DependenciesSource acceptent n'importe quel IEnumerable, par exemple une ObservableCollection de votre propre classe, et TsgcAvaloniaPlannerItemFields associe les noms de vos membres à l'identifiant, au titre, au début, à la fin, aux ressources, au statut, à la récurrence et aux autres champs de l'élément. SelectedItem se lie dans les deux sens, et un glissement ou une modification dans le contrôle réécrit les nouvelles valeurs dans vos objets. Les bindings compilés avec x:DataType fonctionnent.

Existe-t-il une édition gratuite du planificateur Avalonia ?

Oui. esegece.sgcPlanner.Avalonia.Community est gratuit pour les particuliers et les organisations réalisant moins de 1 000 000 EUR de chiffre d'affaires annuel et comptant au plus cinq développeurs. Il comprend les vues jour, semaine de travail, semaine, mois et agenda, le Gantt et le tableau Kanban. La récurrence, la chronologie des ressources, les dépendances avec planification automatique, le chemin critique, les lignes de base, les couloirs et les limites WIP de Kanban, ainsi que l'échange iCalendar et MS Project XML nécessitent l'édition Registered.

Le planificateur Avalonia peut-il se synchroniser avec Outlook, Google Calendar ou CalDAV ?

Oui, grâce au paquet passerelle optionnel esegece.sgcPlanner.sgcWebSockets de l'édition Registered, qui utilise sgcWebSockets. TsgcPlannerGraphSync maintient les données synchronisées dans les deux sens avec un calendrier Outlook de Microsoft 365 ou Outlook.com via Microsoft Graph, TsgcPlannerGoogleSync avec un calendrier Google et TsgcPlannerCalDAVSync avec un calendrier CalDAV tel que Nextcloud, iCloud, Fastmail ou Radicale. TsgcPlannerICalSubscription fusionne une URL iCalendar en lecture seule. La passerelle travaille sur l'objet de données, elle sert donc les contrôles Avalonia comme ceux de WinForms et de WPF.

Quelle édition de sgcUI inclut sgcPlanner pour Avalonia ?

sgcPlanner .NET est inclus dans l'édition sgcUI .NET Enterprise et est aussi vendu en paquet individuel. Les deux licences couvrent WinForms, WPF et Avalonia, avec le code source C# complet et la redistribution binaire gratuite.

Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Ajoutez un planificateur à votre application Avalonia

Commencez avec le paquet Community gratuit de NuGet, ou avec le paquet Registered pour la récurrence, la chronologie, la synchronisation de calendrier et le code source complet, et ouvrez la démo TeamSchedulerAvalonia à côté de votre application.