Avalonia Zamanlayıcı, Gantt ve Kanban Yerel Denetimler Olarak

sgcPlanner, Avalonia 12'ye yerel denetimler olarak bir takvim zamanlayıcısı, bir Gantt grafiği ve bir Kanban panosu getirir: TsgcAvaloniaScheduler, TsgcAvaloniaGantt ve TsgcAvaloniaKanban. Windows, Linux ve macOS üzerinde çalışırlar, XAML'de görünüm modellerinize bağlanırlar ve tek bir görev listesini paylaşırlar, böylece panoya bırakılan bir kart Gantt'taki çubuğu ve takvimdeki olayı da taşır. Arada WPF çalışma zamanı yoktur ve aynı denetimler WinForms, WPF ve Delphi için de vardır.

Avalonia Uygulamanızın İçinde Bir Planlama Paketi

Tek bir TsgcPlannerData nesnesi üzerinde üç denetim. Pencerelerinize birini, ikisini ya da üçünü birden yerleştirin.

ProjectPlanner demosu: aynı görevler bir Kanban panosunda, bir Gantt grafiğinde ve bir zamanlayıcıda
ProjectPlanner demosu: bir proje, bir Kanban panosunda, bir Gantt grafiğinde ve bir zamanlayıcıda. ProjectPlannerAvalonia aynı projeyi bir Avalonia penceresinde gösterir.

Takvim görünümleri

View, TsgcAvaloniaScheduler denetimini gün, iş haftası, hafta, ay, gündem, kaynak zaman çizelgesi ve yıl arasında değiştirir. Yıl görünümü on iki mini aydır ve bir güne çift tıklamak onu gün görünümünde açar. Options.GroupByResource, gün görünümlerinde her kişiye bir sütun grubu verir.

Sürükleyerek oluşturun ve düzenleyin

Zaman ızgarasının boş bir bölümünde sürüklemek, Options.SlotMinutes değerine oturan bir olay oluşturur ve başlangıç, bitiş ve kaynakla OnItemCreate olayını tetikler. Olaylar fareyle taşınır ve yeniden boyutlandırılır, InplaceEdit ile de F2 başlığı yerinde düzenler.

Yineleme

Bir öğe, RecurrenceRule içinde FREQ=WEEKLY;BYDAY=TU gibi bir iCalendar kuralı tutar ve veri, görünür dönem için seriyi oluşumlara açar. Bir oluşumu sürüklemek OnRecurrenceEdit olayını tetikler, burada prsOccurrence, prsSeries veya prsCancel değerlerinden birini seçersiniz. Varsayılan olarak sürükleme yalnızca o oluşumu taşır.

Hatırlatıcılar ve saat dilimleri

TsgcPlannerReminders, ReminderMinutes süresi dolan öğeleri bildirir ve Dismiss ile Snooze sunar. Her öğe kendi TimeZone değerini taşıyabilir ve Data.DisplayTimeZone tüm takvimi kullanıcının seçtiği dilimde gösterir.

Gantt grafiği

TsgcAvaloniaGantt; sütunlu bir görev ızgarasına, özet görevlere, kilometre taşlarına, ilerlemeye, otomatik zamanlamalı bağımlılıklara, kritik yola ve temel planlara sahiptir. TimeScale.TierCount üç katmanlı bir zaman ölçeği verir, ShowHistogram ise aşırı atamayı kritik renkle boyayan bir kaynak yükü bölmesi ekler.

Kanban panosu

TsgcAvaloniaKanban, öğeleri duruma göre sütunlarda kartlar olarak gösterir. Bir bırakma, veri üzerinde MoveItem çağırır ve bu her görünümü bir kez bilgilendirir, böylece Gantt ve zamanlayıcı yeni durumla yeniden çizilir. Yüzme şeritleri ve WIP sınırları Registered sürümündedir.

Kaynaklar ve kapasite

Kaynakların bir adı, bir rengi ve baş harfleri vardır. sgcUI 2026.11 ile gelen yenilik: TsgcPlannerResource.Capacity histogramdaki yükü ölçekler, kapasite çizgisini taşır ve üstündeki aşırı atamayı işaretler, JSON içinde ve Microsoft Project dosyalarında MaxUnits olarak kaydedilir.

Geri alma ve yineleme

Data.Undo, bir sürüklemeyi veya düzenlemeyi Undo ve Redo ile tek adımda geri alır. CanUndo, CanRedo, UndoCaption ve RedoCaption düğmelerinizi ve ipuçlarını yönetir.

İçe aktarma, dışa aktarma ve yazdırma

Veri JSON yükler ve kaydeder, bir DataTable okur. Registered sürümü iCalendar ve MS Project XML (MSPDI) içe ve dışa aktarma ekler. Önizlemeli yazdırma ve pencere olmadan PNG ve SVG çıktısı her sürümdedir.

MVVM, Temalar, Diller ve Takvim Eşitleme

Planlayıcı, kendi kurallarını benimsemenizi istemek yerine bir Avalonia uygulamasının kurallarını izler.

XAML'de MVVM bağlama

ItemsSource, ResourcesSource ve DependenciesSource kendi koleksiyonlarınızı alır, TsgcAvaloniaPlannerItemFields sınıfınızın üye adlarını eşler ve SelectedItem iki yönlü bağlanır. Herhangi bir görünümdeki sürükleme, yeni tarihleri veya durumu nesnelerinize geri yazar. Tek bir xmlns:sgc="https://www.esegece.com/sgcui" öneki her sgcUI denetimini kapsar.

Fluent dahil temalar

Denetimler, uygulamanızın açık veya koyu Avalonia tema varyantını izler. sgcUI 2026.11 ile gelen yenilik: Fluent ön ayarında, ana bilgisayarı izlerken Avalonia FluentTheme renklerini ve Windows 11'in köşe yarıçaplarını ve odak halkasını alırlar.

Sağdan sola ve erişilebilirlik

Denetimler sağdan sola bir FlowDirection değerine uyar ve Gantt, MirrorTimeline ile zaman çizelgesini yansıtabilir veya soldan sağa tutabilir. Her denetimin bir Avalonia automation peer'ı ve klavye gezintisi vardır, böylece ekran okuyucular görünümleri, öğeleri ve zaman aralıklarını duyurur. Erişilebilirlik her sürümde varsayılan olarak açıktır.

12 dil

sgcUI 2026.11 ile gelen yenilik: son kullanıcı metinleri İngilizce, İspanyolca, Almanca, Fransızca, İtalyanca, Felemenkçe, Lehçe, Portekizce (Brezilya), Türkçe, Japonca, Korece ve Çince için gömülü dil paketlerinden gelir. sgcUILang.SetLanguage bir yerel ayar veya geçerli arayüz kültürü için "auto" değerini alır.

Outlook, Google ve CalDAV eşitleme

Registered sürümünün isteğe bağlı esegece.sgcPlanner.sgcWebSockets köprüsü, veriyi Microsoft Graph üzerinden Microsoft 365 ve Outlook.com Outlook takvimleriyle (TsgcPlannerGraphSync), Google Calendar ile (TsgcPlannerGoogleSync) ve Nextcloud, iCloud, Fastmail veya Radicale gibi herhangi bir CalDAV sunucusuyla (TsgcPlannerCalDAVSync) iki yönlü eşitler. TsgcPlannerICalSubscription salt okunur bir iCalendar URL'sini birleştirir. Köprü sgcWebSockets kullanır.

Smart Paste

Zamanlayıcıda Ctrl+Shift+V, yapıştırılan bir metni toplantıya dönüştürür. "Ad: değer" gibi satırları yerleşik ayrıştırıcı okur, AIProvider ise bir e-posta gibi serbest metin için tercih ettiğiniz LLM'yi çağıran bir TsgcUIAIEventProvider alır. Smart Paste Community sürümünde de vardır.

Tek Bir Görünüm Modeline Bağlı Bir Zamanlayıcı ve Bir Gantt

FluentTheme ve derlenmiş bağlamalarla net8.0 üzerindeki küçük bir Avalonia 12 uygulamasından kopyalanmıştır, using satırları ve ad alanı çıkarılmıştır. Uygulama, sgcPlanner'ın hem Registered hem de Community derlemesine karşı 0 uyarı ve 0 hatayla derlenir.

Görünüm modeli: sade sınıflar

Kendi türleriniz, miras alınacak bir şey yok. Günlük bir ayakta toplantı, yineleme kuralı olan tek bir öğedir.

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

Pencere: aynı koleksiyonlar üzerinde iki görünüm

Alan eşlemeleri, denetimlere kimliği, başlığı, tarihleri, sahibi ve kuralı hangi üyenin tuttuğunu söyler.

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>

Arka plan kodu: seçenekler ve oluşturma olayı

İş haftasını kişiye göre gruplayın, yeni olayları 15 dakikaya oturtun, bir sürüklemenin oluşturduğu olaya ad verin ve Gantt'a üç katmanlı bir zaman ölçeği verin.

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

Proje Avalonia.Desktop ve Avalonia.Themes.Fluent 12.1.4 ile esegece.sgcPlanner.Avalonia paketine başvurur, ücretsiz sürüm için ise esegece.sgcPlanner.Avalonia.Community paketine başvurur, bu sürümde yineleme Registered özelliği olduğu için ayakta toplantı yalnızca bir kez görünür. Uygulama stillerine new FluentTheme() ekler ve pencerede DataContext = new TTeamViewModel() atar.

Nerede Çalışır

Tek bir planlayıcı modeli, her ana bilgisayarda aynı görünümler.

Ana bilgisayar Denetimler Hedefler
Avalonia 12TsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanbanWindows, Linux ve macOS üzerinde net8.0, net9.0, net10.0
WinForms ve WPFTsgcWinFormsScheduler, Gantt ve Kanban ile WPF karşılıklarıAvalonia ile aynı lisansta .NET
Delphi ve C++BuilderTsgcVCLScheduler, TsgcFMXScheduler ve bunların Gantt ve Kanban karşılıklarısgcPlanner Delphi sürümünde VCL ve FireMonkey
Başsız (headless)TsgcPlannerRendererPencere olmadan PNG ve SVG çıktısı, Windows, Linux ve macOS üzerinde

Avalonia denetimleri, sgcUICore Avalonia denetim tabanı üzerinde SkiaSharp ile çizilir. TeamSchedulerAvalonia ve ProjectPlannerAvalonia demoları .NET SDK 8.0 veya daha yenisini gerektirir ve Windows, Linux veya macOS üzerinde çalışır.

Avalonia'da Zamanlayıcı Edinmenin Üç Yolu

2026-10-20 tarihinde okunduğu şekliyle, kaynaklar için Avalonia Pro ve WinForms ve WPF'den Avalonia'ya kılavuzlarına bakın.

  Avalonia XPF üzerinde bir WPF paketi Avalonia Pro sgcPlanner for Avalonia
NedirXPF üzerinde çalışan bir WPF zamanlayıcısı, satıcısı bunu "a binary-compatible WPF runtime" olarak adlandırırpremium Avalonia bileşenleriyerel Avalonia 12 denetimleri
Zamanlayıcı, Gantt, KanbanWPF paketinin zamanlayıcı, Gantt ve Kanban denetimleri, XPF üçüncü taraf kitaplık notlarındaki koşullarla, örneğin DevExpress denetimleri için Win32 API shim'leriAvalonia Pro sayfasında listelenmiyorTsgcAvaloniaScheduler, TsgcAvaloniaGantt, TsgcAvaloniaKanban
LisansUygulama başına XPF, EUR 9.500 (Internal) ve EUR 29.500 (Business) tutarından başlar, ayrıca WPF paketinin lisansı gerekirKoltuk başına yılda EUR 899geliştirici başına: sgcPlanner .NET €249 veya sgcUI .NET Enterprise €699, uygulama başına ücret yok
Kaynak kodu premium denetimlerin tam kaynağı Enterprise'daher Registered lisansında tam C# kaynak kodu
Ücretsiz kademe Community, 2026-04-07 tarihinden beri yeni kayıtlar için yalnızca ticari olmayan kullanımCommunity NuGet paketleri, EUR 1.000.000 gelir altında ve en çok beş geliştiriciyle ticari kullanım için de

Diğer yollara adil olmak gerekirse: XPF, mevcut bir WPF uygulamasını macOS ve Linux üzerinde büyük ölçüde olduğu gibi çalıştırmayı hedefler, sgcPlanner bunu yapmaz. Avalonia Pro, premium bileşenler ve Hot Reload ile DevTools gibi sgcUI'nin sunmadığı satıcı araçları sağlar. sgcPlanner, Avalonia Pro denetimlerinin yanında aynı pencerede çalışır.

Community veya Registered

İki sürümde de aynı üç denetim vardır. Registered sürümü gelişmiş planlama özelliklerini ve kaynak kodunu ekler.

Community, ücretsiz

NuGet üzerinde esegece.sgcPlanner.Avalonia.Community, yıllık brüt geliri EUR 1.000.000'un altında olan ve en çok beş geliştiricisi bulunan bireyler ve kuruluşlar için ticari ve ticari olmayan projelerde ücretsizdir. Gün, iş haftası, hafta, ay ve gündem görünümleri, sürüklemeli Gantt ve Kanban, özetler, kilometre taşları, ilerleme, kaynağa göre gruplama, DataTable ve JSON verisi, Smart Paste, yazdırma ve pencere olmadan PNG ve SVG çıktısı.

Registered

esegece.sgcPlanner.Avalonia, sgcPlanner .NET tekil paketinde €249 ve geliştirici başına sgcUI .NET Enterprise içinde €699. Yineleme, kaynak zaman çizelgesi, otomatik zamanlamalı bağımlılıklar, kritik yol, temel planlar, Kanban yüzme şeritleri ve WIP sınırları, iCalendar ve MS Project XML, takvim eşitleme köprüsü, tam C# kaynak kodu ve ücretsiz ikili dağıtım ekler.

Kendi Kendini Denetleyen İki Avalonia Demosu

İkisi de dotnet run ile çalışır ve dotnet run -- --test result.txt her denetim için bir PASS veya FAIL satırı yazar ve başarısız denetim sayısıyla çıkar.

TeamSchedulerAvalonia

Beş kişilik ekibin üç haftalık toplantıları: her görünüm, başlığı yerinde düzenleme, geri alma ve yineleme, Dismiss ve Snooze ile hatırlatıcılar, öğe başına saat dilimleri, yinelenen ayakta toplantılar ve eşitlemeler, sürükleyerek oluşturma, kaynağa göre gruplama ve Smart Paste.

ProjectPlannerAvalonia

Bir web sitesi yeniden lansman projesi aynı anda bir Gantt grafiğinde, bir Kanban panosunda ve bir haftada gösterilir ve hepsi aynı veriye bağlıdır: bir kartı To do'dan Done'a sürükleyin, Gantt çubuğu ve takvim olayı yeşile döner. Üç katmanlı zaman ölçeği, kaynak histogramı ve geri alma ile.

sgcUI demolarına bakın veya her özelliği sgcPlanner ürün sayfasında okuyun.

Avalonia Zamanlayıcı Soruları

Zamanlayıcı yerel bir Avalonia denetimi midir, yoksa bir uyumluluk katmanı üzerindeki WPF denetimi mi?

Yerel bir Avalonia denetimidir. TsgcAvaloniaScheduler, TsgcAvaloniaGantt ve TsgcAvaloniaKanban, Avalonia ve Avalonia.Skia 12 üzerine kurulmuştur ve SkiaSharp ile çizilir, net8.0, net9.0 ve net10.0 için esegece.sgcPlanner.Avalonia paketindedir. Arada WPF çalışma zamanı yoktur ve denetimler Windows, Linux ve macOS üzerinde çalışır.

Zamanlayıcıyı XAML'de kendi görünüm modelime bağlayabilir miyim?

Evet. ItemsSource, ResourcesSource ve DependenciesSource herhangi bir IEnumerable alır, örneğin kendi sınıfınızın bir ObservableCollection nesnesi, TsgcAvaloniaPlannerItemFields ise üye adlarınızı kimlik, başlık, başlangıç, bitiş, kaynaklar, durum, yineleme ve diğer öğe alanlarıyla eşler. SelectedItem iki yönlü bağlanır ve denetimdeki bir sürükleme veya düzenleme yeni değerleri nesnelerinize geri yazar. x:DataType ile derlenmiş bağlamalar çalışır.

Avalonia zamanlayıcının ücretsiz bir sürümü var mı?

Evet. esegece.sgcPlanner.Avalonia.Community, yıllık brüt geliri EUR 1.000.000'un altında olan ve en çok beş geliştiricisi bulunan bireyler ve kuruluşlar için ücretsizdir. Gün, iş haftası, hafta, ay ve gündem görünümlerine, Gantt'a ve Kanban panosuna sahiptir. Yineleme, kaynak zaman çizelgesi, otomatik zamanlamalı bağımlılıklar, kritik yol, temel planlar, Kanban yüzme şeritleri ve WIP sınırları ile iCalendar ve MS Project XML alışverişi için Registered sürümü gerekir.

Avalonia zamanlayıcı Outlook, Google Calendar veya CalDAV ile eşitlenebilir mi?

Evet, sgcWebSockets kullanan Registered sürümünün isteğe bağlı esegece.sgcPlanner.sgcWebSockets köprü paketi sayesinde. TsgcPlannerGraphSync veriyi Microsoft Graph üzerinden Microsoft 365 veya Outlook.com Outlook takvimiyle, TsgcPlannerGoogleSync bir Google takvimiyle ve TsgcPlannerCalDAVSync Nextcloud, iCloud, Fastmail veya Radicale gibi bir CalDAV takvimiyle iki yönlü eşitler. TsgcPlannerICalSubscription salt okunur bir iCalendar URL'sini birleştirir. Köprü veri nesnesi üzerinde çalışır, bu yüzden WinForms ve WPF denetimlerine olduğu kadar Avalonia denetimlerine de hizmet eder.

Avalonia için sgcPlanner hangi sgcUI sürümüne dahildir?

sgcPlanner .NET, sgcUI .NET Enterprise sürümüne dahildir ve tekil paket olarak da satılır. İki lisans da tam C# kaynak kodu ve ücretsiz ikili dağıtımla WinForms, WPF ve Avalonia'yı kapsar.

En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Avalonia Uygulamanıza Bir Zamanlayıcı Ekleyin

NuGet'ten ücretsiz Community paketiyle ya da yineleme, zaman çizelgesi, takvim eşitleme ve tam kaynak kodu için Registered paketiyle başlayın ve TeamSchedulerAvalonia demosunu uygulamanızın yanında açın.