Planificador Avalonia, Gantt y Kanban como controles nativos

sgcPlanner lleva a Avalonia 12 un planificador de calendario, un diagrama de Gantt y un tablero Kanban como controles nativos: TsgcAvaloniaScheduler, TsgcAvaloniaGantt y TsgcAvaloniaKanban. Funcionan en Windows, Linux y macOS, se enlazan a tus view models en XAML y comparten una sola lista de tareas, de modo que una tarjeta soltada en el tablero mueve la barra del Gantt y el evento del calendario. Sin runtime WPF de por medio, y los mismos controles existen para WinForms, WPF y Delphi.

Una suite de planificación dentro de tu aplicación Avalonia

Tres controles sobre un mismo objeto TsgcPlannerData. Coloca uno, dos o los tres en tus ventanas.

Demo ProjectPlanner: las mismas tareas en un tablero Kanban, un diagrama de Gantt y un planificador
La demo ProjectPlanner: un proyecto en un tablero Kanban, un diagrama de Gantt y un planificador. ProjectPlannerAvalonia muestra el mismo proyecto en una ventana de Avalonia.

Vistas de calendario

View cambia TsgcAvaloniaScheduler entre día, semana laboral, semana, mes, agenda, la línea de tiempo de recursos y el año, doce minimeses donde un doble clic en un día lo abre en la vista de día. Options.GroupByResource da a cada persona un grupo de columnas en las vistas de día.

Arrastrar para crear y editar

Un arrastre sobre una zona vacía de la cuadrícula horaria crea un evento ajustado a Options.SlotMinutes y lanza OnItemCreate con el inicio, el fin y el recurso. Los eventos se mueven y se redimensionan con el ratón, y con InplaceEdit F2 edita el título en el sitio.

Recurrencia

Un elemento guarda una regla iCalendar como FREQ=WEEKLY;BYDAY=TU en RecurrenceRule, y los datos expanden la serie en ocurrencias para el periodo visible. Al arrastrar una ocurrencia se lanza OnRecurrenceEdit, donde eliges prsOccurrence, prsSeries o prsCancel. Por defecto el arrastre mueve solo esa ocurrencia.

Recordatorios y zonas horarias

TsgcPlannerReminders informa de los elementos cuyos ReminderMinutes han vencido, con Dismiss y Snooze. Cada elemento puede llevar su propio TimeZone, y Data.DisplayTimeZone muestra todo el calendario en la zona que elija el usuario.

Diagrama de Gantt

TsgcAvaloniaGantt tiene una cuadrícula de tareas con columnas, resúmenes, hitos, progreso, dependencias con planificación automática, la ruta crítica y líneas base. TimeScale.TierCount da una escala de tiempo de tres niveles, y ShowHistogram añade un panel de carga de recursos que pinta la sobreasignación con el color crítico.

Tablero Kanban

TsgcAvaloniaKanban muestra los elementos como tarjetas en columnas según su estado. Al soltar una tarjeta se llama a MoveItem en los datos, que notifica una sola vez a todas las vistas, de modo que el Gantt y el planificador se repintan con el nuevo estado. Los carriles y los límites WIP están en la edición Registered.

Recursos y capacidad

Los recursos tienen un nombre, un color y unas iniciales. Novedad de sgcUI 2026.11, TsgcPlannerResource.Capacity escala la carga en el histograma, mueve la línea de capacidad y marca la sobreasignación por encima de ella, y se guarda en JSON y como MaxUnits en los archivos de Microsoft Project.

Deshacer y rehacer

Data.Undo deshace un arrastre o una edición en un solo paso con Undo y Redo. CanUndo, CanRedo, UndoCaption y RedoCaption gobiernan tus botones y sus tooltips.

Importar, exportar e imprimir

Los datos se cargan y guardan en JSON y se leen desde un DataTable. La edición Registered añade la importación y exportación de iCalendar y MS Project XML (MSPDI). La impresión con vista previa y la salida headless en PNG y SVG están en todas las ediciones.

MVVM, temas, idiomas y sincronización de calendario

El planificador sigue las convenciones de una aplicación Avalonia en lugar de pedirte que adoptes las suyas.

Binding MVVM en XAML

ItemsSource, ResourcesSource y DependenciesSource aceptan tus propias colecciones, TsgcAvaloniaPlannerItemFields asigna los nombres de miembro de tu clase, y SelectedItem se enlaza en los dos sentidos. Un arrastre en cualquier vista escribe de vuelta en tus objetos las nuevas fechas o el nuevo estado. Un único prefijo xmlns:sgc="https://www.esegece.com/sgcui" cubre todos los controles de sgcUI.

Temas, Fluent incluido

Los controles siguen la variante de tema de Avalonia de tu aplicación, clara u oscura. Novedad de sgcUI 2026.11, con el preset Fluent toman los colores del FluentTheme de Avalonia mientras siguen al host, con los radios de esquina y el anillo de foco de Windows 11.

De derecha a izquierda y accesibilidad

Los controles respetan un FlowDirection de derecha a izquierda, y el Gantt puede reflejar su línea de tiempo o mantenerla de izquierda a derecha con MirrorTimeline. Cada control tiene un automation peer de Avalonia y navegación por teclado, de modo que los lectores de pantalla anuncian las vistas, los elementos y los intervalos. La accesibilidad está activada por defecto en todas las ediciones.

12 idiomas

Novedad de sgcUI 2026.11, los textos para el usuario final proceden de paquetes de idioma incrustados para inglés, español, alemán, francés, italiano, neerlandés, polaco, portugués (Brasil), turco, japonés, coreano y chino. sgcUILang.SetLanguage acepta una configuración regional o "auto" para la cultura actual de la interfaz.

Sincronización con Outlook, Google y CalDAV

El puente opcional esegece.sgcPlanner.sgcWebSockets de la edición Registered mantiene los datos sincronizados en los dos sentidos con los calendarios de Outlook de Microsoft 365 y Outlook.com a través de Microsoft Graph (TsgcPlannerGraphSync), con Google Calendar (TsgcPlannerGoogleSync) y con cualquier servidor CalDAV como Nextcloud, iCloud, Fastmail o Radicale (TsgcPlannerCalDAVSync). TsgcPlannerICalSubscription fusiona una URL de iCalendar de solo lectura. El puente usa sgcWebSockets.

Smart Paste

Ctrl+Shift+V en el planificador convierte un texto pegado en una reunión. El analizador integrado lee líneas como "Nombre: valor", y AIProvider acepta un TsgcUIAIEventProvider que llama al LLM que elijas para texto libre como un correo electrónico. Smart Paste también está en la edición Community.

Un planificador y un Gantt enlazados a un mismo view model

Copiado de una pequeña aplicación Avalonia 12 sobre net8.0 con FluentTheme y bindings compilados, sin las líneas using ni el namespace. La aplicación compila con 0 avisos y 0 errores contra la compilación Registered y la Community de sgcPlanner.

El view model: clases simples

Tus propios tipos, sin nada que heredar. Un stand-up diario es un solo elemento con una regla de recurrencia.

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 ventana: dos vistas sobre las mismas colecciones

Los mapas de campos indican a los controles qué miembro contiene el id, el título, las fechas, el propietario y la regla.

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>

El code behind: opciones y el evento de creación

Agrupa la semana laboral por persona, ajusta los eventos nuevos a 15 minutos, pon nombre al evento que crea un arrastre y da al Gantt una escala de tiempo de tres niveles.

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

El proyecto referencia Avalonia.Desktop y Avalonia.Themes.Fluent 12.1.4 y esegece.sgcPlanner.Avalonia, o esegece.sgcPlanner.Avalonia.Community para la edición gratuita, donde el stand-up aparece una sola vez porque la recurrencia es una función Registered. La aplicación añade new FluentTheme() a sus estilos y establece DataContext = new TTeamViewModel() en la ventana.

Dónde funciona

Un solo modelo de planificador, las mismas vistas en cada host.

Host Controles Destinos
Avalonia 12TsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanbannet8.0, net9.0, net10.0 en Windows, Linux y macOS
WinForms y WPFTsgcWinFormsScheduler, Gantt y Kanban, y sus equivalentes WPF.NET, con la misma licencia que Avalonia
Delphi y C++BuilderTsgcVCLScheduler, TsgcFMXScheduler y sus equivalentes Gantt y KanbanVCL y FireMonkey, en la edición Delphi de sgcPlanner
HeadlessTsgcPlannerRendererSalida PNG y SVG sin ventana, en Windows, Linux y macOS

Los controles de Avalonia se dibujan con SkiaSharp sobre la base de controles Avalonia de sgcUICore. Las demos TeamSchedulerAvalonia y ProjectPlannerAvalonia necesitan el SDK de .NET 8.0 o posterior y funcionan en Windows, Linux o macOS.

Tres formas de tener un planificador en Avalonia

Según lo leído el 2026-10-20, consulta las guías Avalonia Pro y WinForms y WPF a Avalonia para las fuentes.

  Una suite WPF sobre Avalonia XPF Avalonia Pro sgcPlanner para Avalonia
Qué esun planificador WPF que se ejecuta sobre XPF, al que su fabricante llama "un runtime WPF binariamente compatible"los componentes premium de Avaloniacontroles nativos de Avalonia 12
Planificador, Gantt, Kanbanlos de la suite WPF, con las condiciones de las notas de XPF sobre bibliotecas de terceros, por ejemplo shims de la API Win32 para los controles de DevExpressno figuran en la página de Avalonia ProTsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanban
LicenciaXPF por aplicación, desde 9.500 EUR (Internal) y 29.500 EUR (Business), más la licencia de la suite WPF899 EUR por puesto y añopor desarrollador: sgcPlanner .NET €249, o sgcUI .NET Enterprise €699, sin cuota por aplicación
Código fuente código fuente completo de los controles premium en Enterprisecódigo fuente C# completo en cada licencia Registered
Nivel gratuito Community, solo uso no comercial para los nuevos registros desde el 2026-04-07Paquetes NuGet Community, también para uso comercial con ingresos inferiores a 1.000.000 EUR y hasta cinco desarrolladores

Para ser justos con las otras vías: XPF pretende ejecutar una aplicación WPF existente en macOS y Linux prácticamente tal cual, y sgcPlanner no hace eso. Avalonia Pro ofrece componentes premium y herramientas del fabricante como Hot Reload y DevTools, que sgcUI no incluye. sgcPlanner funciona junto a los controles de Avalonia Pro en la misma ventana.

Community o Registered

Ambas ediciones tienen los mismos tres controles. La edición Registered añade las funciones avanzadas de planificación y el código fuente.

Community, gratuita

esegece.sgcPlanner.Avalonia.Community en NuGet, gratuito en proyectos comerciales y no comerciales para particulares y organizaciones con menos de 1.000.000 EUR de ingresos brutos anuales y no más de cinco desarrolladores. Vistas de día, semana laboral, semana, mes y agenda, Gantt y Kanban con arrastre, resúmenes, hitos, progreso, agrupación por recurso, datos DataTable y JSON, Smart Paste, impresión y salida headless en PNG y SVG.

Registered

esegece.sgcPlanner.Avalonia, en el paquete individual sgcPlanner .NET €249 y en sgcUI .NET Enterprise €699 por desarrollador. Añade recurrencia, la línea de tiempo de recursos, dependencias con planificación automática, la ruta crítica, líneas base, carriles y límites WIP de Kanban, iCalendar y MS Project XML, el puente de sincronización de calendario, el código fuente C# completo y redistribución binaria gratuita.

Dos demos de Avalonia con autocomprobación

Ambas se ejecutan con dotnet run, y dotnet run -- --test result.txt escribe una línea PASS o FAIL por comprobación y termina con el número de comprobaciones fallidas.

TeamSchedulerAvalonia

Tres semanas de reuniones de equipo para cinco personas: todas las vistas, edición del título en el sitio, deshacer y rehacer, recordatorios con Dismiss y Snooze, zonas horarias por elemento, stand-ups y sincronizaciones recurrentes, arrastrar para crear, agrupación por recurso y Smart Paste.

ProjectPlannerAvalonia

Un proyecto de relanzamiento de un sitio web mostrado a la vez en un diagrama de Gantt, un tablero Kanban y una semana, todo enlazado a los mismos datos: arrastra una tarjeta de To do a Done y la barra del Gantt y el evento del calendario se ponen en verde. Con la escala de tiempo de tres niveles, el histograma de recursos y deshacer.

Ver las demos de sgcUI o leer sobre cada función en la página de producto de sgcPlanner.

Preguntas sobre el planificador de Avalonia

¿El planificador es un control nativo de Avalonia o un control WPF sobre una capa de compatibilidad?

Es un control nativo de Avalonia. TsgcAvaloniaScheduler, TsgcAvaloniaGantt y TsgcAvaloniaKanban están construidos sobre Avalonia y Avalonia.Skia 12 y se dibujan con SkiaSharp, en el paquete esegece.sgcPlanner.Avalonia para net8.0, net9.0 y net10.0. No hay ningún runtime WPF de por medio, y los controles funcionan en Windows, Linux y macOS.

¿Puedo enlazar el planificador a mi propio view model en XAML?

Sí. ItemsSource, ResourcesSource y DependenciesSource aceptan cualquier IEnumerable, por ejemplo una ObservableCollection de tu propia clase, y TsgcAvaloniaPlannerItemFields asigna los nombres de tus miembros al id, el título, el inicio, el fin, los recursos, el estado, la recurrencia y los demás campos del elemento. SelectedItem se enlaza en los dos sentidos, y un arrastre o una edición en el control escribe los nuevos valores de vuelta en tus objetos. Los bindings compilados con x:DataType funcionan.

¿Hay una edición gratuita del planificador de Avalonia?

Sí. esegece.sgcPlanner.Avalonia.Community es gratuito para particulares y organizaciones con menos de 1.000.000 EUR de ingresos brutos anuales y no más de cinco desarrolladores. Incluye las vistas de día, semana laboral, semana, mes y agenda, el Gantt y el tablero Kanban. La recurrencia, la línea de tiempo de recursos, las dependencias con planificación automática, la ruta crítica, las líneas base, los carriles y los límites WIP de Kanban y el intercambio de iCalendar y MS Project XML necesitan la edición Registered.

¿Puede el planificador de Avalonia sincronizarse con Outlook, Google Calendar o CalDAV?

Sí, mediante el paquete puente opcional esegece.sgcPlanner.sgcWebSockets de la edición Registered, que usa sgcWebSockets. TsgcPlannerGraphSync mantiene los datos sincronizados en los dos sentidos con un calendario de Outlook de Microsoft 365 u Outlook.com a través de Microsoft Graph, TsgcPlannerGoogleSync con un calendario de Google y TsgcPlannerCalDAVSync con un calendario CalDAV como Nextcloud, iCloud, Fastmail o Radicale. TsgcPlannerICalSubscription fusiona una URL de iCalendar de solo lectura. El puente trabaja sobre el objeto de datos, así que sirve tanto a los controles de Avalonia como a los de WinForms y WPF.

¿Qué edición de sgcUI incluye sgcPlanner para Avalonia?

sgcPlanner .NET está incluido en la edición sgcUI .NET Enterprise y también se vende como paquete individual. Ambas licencias cubren WinForms, WPF y Avalonia, con el código fuente C# completo y redistribución binaria gratuita.

La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

Añade un planificador a tu aplicación Avalonia

Empieza con el paquete Community gratuito de NuGet, o con el paquete Registered para recurrencia, línea de tiempo, sincronización de calendario y código fuente completo, y abre la demo TeamSchedulerAvalonia junto a tu aplicación.