Kontrolki Avalonia, których Avalonia Pro nie dostarcza

sgcUI dodaje do aplikacji Avalonia 12 harmonogram, tablicę Kanban, wykres Gantta, tabelę przestawną, edytor diagramów, pulpity, kreatory, mapy i raporty. Kontrolki działają w Twojej aplikacji Avalonia, obok kontrolek Avalonia i FluentTheme, a także obok kontrolek Avalonia Pro, jeśli ich używasz. Dla siatki, wykresu, przeglądarki PDF i edytora tekstu sformatowanego sgcUI oferuje też drugi model licencjonowania. Ten zestaw pokazuje oba, z XAML pochodzącym z przykładu, który się kompiluje i przechodzi swój autotest.

Zespoły, które tworzą aplikacje desktopowe w Avalonia

Zostajesz przy Avalonia, jej motywie, narzędziach i swoich modelach widoku. sgcUI to zestaw kontrolek, który dodajesz, a nie framework, do którego się migruje.

Używasz Avalonia Pro

Zachowaj subskrypcję i dodaj kontrolki, których nie ma na stronie Avalonia Pro: harmonogram, Gantta, Kanban, tabelę przestawną, diagram, pulpit, kreator, mapy i raporty. Współdzielą prefiks XAML sgc, wiążą się z Twoimi modelami widoku i podążają za wariantem motywu Fluent Twojej aplikacji.

Wybierasz płatny plan

Jeśli przejście na poziom Community oznacza, że Twój zespół potrzebuje teraz płatnego planu Avalonia dla kontrolek premium, porównaj opcje. sgcUI ma własną siatkę, wykres, przeglądarkę PDF i edytor tekstu sformatowanego dla Avalonia, licencjonowane na programistę z pełnym kodem źródłowym C#, a wersje WinForms i WPF tych samych kontrolek są w tej samej licencji.

Co zmieniło się w Avalonia: we wpisie z 7 kwietnia 2026 Avalonia ogłosiła: „Dziś, wraz z wydaniem Avalonia 12, całkowicie wycofujemy markę Avalonia Accelerate.” We wpisie napisano też: „Poziom Community zmienia się na wyłącznie niekomercyjny”, ze skutkiem natychmiastowym dla nowych rejestracji i w kolejnych tygodniach dla obecnych subskrybentów Community. Organizacjom, które używały poziomu Community komercyjnie i spełniały jego pierwotne warunki (przychód roczny poniżej 1 mln EUR), oferowany jest 50% rabat przejściowy na licencję organizacyjną, a obecni subskrybenci Accelerate zachowują swoją subskrypcję i ceny. Na stronie cennika Avalonia (z dnia 2026-10-20) sam framework pozostaje darmowym „frameworkiem interfejsu na licencji MIT”, Plus kosztuje 299 EUR za stanowisko rocznie, Pro 899 EUR za stanowisko rocznie, a Enterprise zaczyna się od 21 000 EUR rocznie z trzema stanowiskami w cenie. Ceny nie zawierają VAT, a strona podaje, że „stanowiska są dla programistów pracujących nad interfejsem, a nie dla całego zespołu”. (Cytaty przetłumaczone z angielskiego.)

Kontrolka po kontrolce

Kolumna Avalonia Pro wymienia to, co nazywają strony Avalonia, z dnia 2026-10-20. „Nie wymieniono” oznacza tylko, że kontrolki nie ma na stronie Avalonia Pro.

Kontrolka Avalonia Pro Kontrolka sgcUI Avalonia Produkt sgcUI, edycja .NET
Harmonogram (kalendarz)nie wymieniono na stronie Avalonia ProTsgcAvaloniaSchedulersgcPlanner, .NET Enterprise
Ganttnie wymieniono na stronie Avalonia ProTsgcAvaloniaGanttsgcPlanner, .NET Enterprise
Kanbannie wymieniono na stronie Avalonia ProTsgcAvaloniaKanbansgcPlanner, .NET Enterprise
Tabela przestawnanie wymieniono na stronie Avalonia ProTsgcAvaloniaPivotGrid, TsgcAvaloniaPivotFieldListsgcPivotGrid, .NET Enterprise
Diagramnie wymieniono na stronie Avalonia ProTsgcAvaloniaDiagramViewsgcDiagram, .NET Enterprise
Pulpitnie wymieniono na stronie Avalonia ProTsgcAvaloniaDashboard, TsgcAvaloniaDashboardTile, TsgcAvaloniaKPICardsgcDashboard, .NET Professional
Kreatornie wymieniono na stronie Avalonia ProTsgcAvaloniaWizard, TsgcAvaloniaSteppersgcWizard, .NET Enterprise
Mapynie wymieniono na stronie Avalonia ProTsgcAvaloniaMapsgcMaps, .NET Enterprise
Raportynie wymieniono na stronie Avalonia ProTsgcAvaloniaReportDesigner, TsgcAvaloniaReportPreviewsgcReports, .NET Enterprise
Wskaźnikikategoria „Gauge” na stronie ChartsTsgcAvalonia<Kind>GaugesgcGauges, .NET Professional
Siatka danychTree DataGrid (Avalonia.Controls.TreeDataGrid), z trybem płaskim i hierarchicznymTsgcAvaloniaGrid, TsgcAvaloniaGridColumnsgcGrid, .NET Standard
WykresyCharts (Avalonia.Controls.Charts), „ponad 70 typów wykresów”TsgcAvaloniaChart, TsgcAvaloniaChartSeries, TsgcAvaloniaChartAxissgcCharts, .NET Professional
Przeglądarka PDFPDF Viewer (Avalonia.Controls.PdfViewer)TsgcAvaloniaPDFViewer, TsgcAvaloniaPDFThumbnailView, TsgcAvaloniaPDFOutlineView; sgcPDF także tworzy, modyfikuje i podpisuje pliki PDFsgcPDF, .NET Enterprise
Edytor tekstu sformatowanegoRich Text Editor (Avalonia.Controls.RichTextEditor)TsgcAvaloniaRichEdit; JSON, HTML, Markdown i RTF na wejściu i wyjściusgcRichEdit, .NET Enterprise (tylko Registered)
Przeglądarka Markdowntakbrak osobnej przeglądarki; TsgcAvaloniaRichEdit odczytuje Markdown 
Odtwarzacz multimedialnytaknie 
Klawiatura ekranowataknie 

Każdy z powyższych produktów jest też sprzedawany jako osobny pakiet. Po stronie Avalonia strona Charts podaje, że Pro „obejmuje wszystkie siedem komponentów premium, ponad 70 typów wykresów i zaawansowane narzędzia” oraz że „nic na tej stronie nie jest osobnym zakupem”.

Dwa modele licencjonowania obok siebie

Stan na 2026-10-20. Ceny Avalonia pochodzą ze strony cennika Avalonia, ceny sgcUI ze strony cennika sgcUI.

  Avalonia Pro sgcUI dla .NET
Modelsubskrypcja na stanowisko, rozliczana rocznie lub miesięcznielicencja na programistę z 1 rokiem aktualizacji w cenie: Single, Team (2 programistów) lub Site (bez limitu)
Cena899 EUR za stanowisko rocznie, bez VAT.NET Standard €380, .NET Professional €529, .NET Enterprise €699 za programistę
Pojedyncze produktynie są sprzedawane osobnona przykład sgcGrid .NET €199, sgcCharts .NET €199, sgcDashboard .NET €199, sgcPlanner .NET €249, sgcPivotGrid .NET €249, sgcDiagram .NET €249, sgcPDF .NET €249, sgcRichEdit .NET €299
Odnowieniesubskrypcja rocznarabat na odnowienie 50% (Standard), 60% (Professional) i 70% (Enterprise)
Kod źródłowypełny kod źródłowy kontrolek premium w Enterprisepełny kod źródłowy C# w każdej edycji Registered i w każdym pojedynczym pakiecie
Redystrybucjanie określono na przeglądanych stronachbezpłatna redystrybucja binarna w każdej edycji
Platformy interfejsuAvaloniaWinForms, WPF i Avalonia w każdej edycji .NET
Plan bezpłatnyCommunity, tylko do użytku niekomercyjnego dla nowych rejestracji od 2026-04-07Pakiety NuGet Community, bezpłatne w projektach komercyjnych i niekomercyjnych dla osoby fizycznej lub organizacji z rocznym przychodem brutto poniżej 1 000 000 EUR i najwyżej pięcioma programistami, z limitami funkcji zależnymi od produktu. sgcRichEdit i sgcMaps dla .NET nie mają pakietu Community.

Cztery kontrolki z przykładu, których nie ma na stronie Avalonia Pro (harmonogram, tabela przestawna, diagram i pulpit), są zebrane w .NET Enterprise albo dostępne pojedynczo jako osobne pakiety. Avalonia Plus i Pro zawierają też narzędzia wydawcy, takie jak Hot Reload, DevTools i rozszerzenia dla Visual Studio i VS Code. sgcUI zawiera tylko komponenty, więc zachowaj plan Avalonia, którego Twój zespół potrzebuje dla narzędzi.

sgcUI w oknie Avalonia 12

Każdy fragment jest skopiowany z przykładu AvaloniaProAlternative, aplikacji Avalonia 12 na net8.0 ze skompilowanymi powiązaniami i FluentTheme, która kompiluje się w Release dla edycji Registered i Community z 0 ostrzeżeń w demo i przechodzi swój autotest. Nie ma tu żadnego kodu Avalonia Pro: ta strona pokazuje wyłącznie kod, który został skompilowany.

Jeden prefiks XAML dla wszystkich produktów

Każdy zestaw sgcUI Avalonia mapuje swoje kontrolki na jeden URI przestrzeni nazw, więc jeden prefiks sgc obejmuje je wszystkie, obok domyślnej przestrzeni nazw Avalonia:

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

Nie wymieniono na stronie Avalonia Pro: harmonogram i Kanban na tej samej liście zadań

Oba widoki wiążą się z tą samą kolekcją Tasks modelu widoku. TsgcAvaloniaPlannerItemFields mapuje członków Twojej własnej klasy zadania, a przeciągnięcie w którymkolwiek widoku zapisuje z powrotem Begin, End lub Stage w zadaniu:

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>

Nie wymieniono: tabela przestawna z listą pól

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

Nie wymieniono: diagram zbudowany z kolekcji

Schemat organizacyjny z kolekcji Employees i jej członka nadrzędnego. NodesSource i LinksSource są dostępne tylko w edycji Registered, więc wersja Community przykładu ukrywa tę kartę.

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"/>

Nie wymieniono: pulpit z kartami KPI i wykresem

Kafelki na siatce o 12 kolumnach, z których każdy hostuje kartę KPI lub dowolną kontrolkę, powiązane z modelem widoku:

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>

Także w Avalonia Pro: siatka, wykres, przeglądarka PDF i tekst sformatowany

Gdy zastępujesz równoważną kontrolkę, zmienia się widok, a model widoku zostaje. Siatka z zadeklarowanymi kolumnami i dwukierunkowym 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>

Wykres liniowy na osi daty i godziny:

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>

Przeglądarka PDF z miniaturami, powiązana z TsgcPDFDocument w modelu widoku:

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"/>

Model widoku buduje dokument za pomocą sgcPDF, zapisuje go w pamięci i wczytuje z powrotem, tak jak robi to dokument odczytany z pliku, zanim trafi do przeglądarki:

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

Edytor tekstu sformatowanego, powiązany jako tekst Markdown (sgcRichEdit jest dostępny tylko w edycji Registered):

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

Motyw pozostaje na miejscu

Aplikacja zachowuje FluentTheme. Kontrolki sgcUI podążają za jego wariantem motywu, jasnym, ciemnym lub ustawieniem systemu operacyjnego, i przełączają się na żywo razem z kontrolkami Fluent:

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

Sześć kroków dodania sgcUI do aplikacji Avalonia

Aplikacja działa po każdym kroku. Nic z tego, co istnieje dziś, nie musi być usuwane.

1

Zostaw aplikację bez zmian

Avalonia.Desktop, Avalonia.Themes.Fluent, Twoje klasy bazowe MVVM i ewentualne kontrolki Avalonia Pro zostają na miejscu.

2

Dodaj pakiety

Wersja Avalonia każdego potrzebnego produktu, na przykład esegece.sgcPlanner.Avalonia, esegece.sgcPivotGrid.Avalonia, esegece.sgcDiagram.Avalonia, esegece.sgcDashboard.Avalonia, esegece.sgcGrid.Avalonia, esegece.sgcCharts.Avalonia lub esegece.sgcPDF.Avalonia. Bezpłatne pakiety Community mają przyrostek .Community, na przykład esegece.sgcPlanner.Avalonia.Community.

3

Dodaj przestrzeń nazw

Umieść xmlns:sgc="https://www.esegece.com/sgcui" w każdym widoku, który używa sgcUI. Jeden prefiks obejmuje wszystkie produkty.

4

Zadeklaruj i powiąż

Zadeklaruj kontrolki w XAML i powiąż je z istniejącymi modelami widoku za pomocą ItemsSource, SelectedItem i tabel pól, takich jak TsgcAvaloniaPlannerItemFields. Skompilowane powiązania z x:DataType działają.

5

Zostaw motyw w spokoju

Zachowaj Styles.Add(new FluentTheme()). Kontrolki sgcUI podążają za RequestedThemeVariant, ponieważ sgcUIApplication.ThemeFollow domyślnie ma wartość utfHost.

6

Zastąp równoważną kontrolkę, jeśli chcesz

Tam, gdzie zastępujesz siatkę, wykres, przeglądarkę PDF lub edytor tekstu sformatowanego, zmień kontrolkę w widoku i zachowaj model widoku. Członkowie do powiązania są wymienieni poniżej.

Pakiet Avalonia Pro Kontrolka sgcUI i członkowie do powiązania
Avalonia.Controls.TreeDataGridTsgcAvaloniaGrid z ItemsSource, SelectedItem, KeyMember, AutoGenerateColumns="False" i TsgcAvaloniaGridColumn (FieldName, Caption, DataType, DisplayFormat, Alignment)
Avalonia.Controls.ChartsTsgcAvaloniaChart z TsgcAvaloniaChartSeries (ItemsSource, XMember, YMember, SeriesKind) i TsgcAvaloniaChartAxis (Name, AxisType="catDateTime")
Avalonia.Controls.PdfViewerTsgcAvaloniaPDFViewer (Document lub Source, ZoomMode, PageIndex, PageCount) i TsgcAvaloniaPDFThumbnailView.Viewer
Avalonia.Controls.RichTextEditorTsgcAvaloniaRichEdit (dwukierunkowy DocumentText, DocumentFormat refJSON, refHTML, refMarkdown, refRTF lub refText, PlainText)

Lewa kolumna wymienia tylko pakiety. Członkowie Avalonia Pro nie były porównywane, więc zaplanuj zmiany widoków na podstawie własnego XAML.

Co ma Avalonia Pro, a czego nie ma sgcUI

Jeśli potrzebujesz któregoś z tych elementów, zachowaj do tego Avalonia Pro. sgcUI działa obok.

Przed planowaniem

Limity edycji i konwencje nazewnictwa, które mają znaczenie w projekcie Avalonia.

AvaloniaProAlternative

Zwykłe okno Avalonia 12 z FluentTheme, przełącznikiem motywu i dwoma zestawami kart: „Not in Avalonia Pro” (harmonogram i Kanban, tabela przestawna, diagram, pulpit) oraz „Also in Avalonia Pro” (siatka, wykres, przeglądarka PDF, tekst sformatowany).

Gdzie je znaleźć

W demach .NET sgcUI, w folderze Suite\AvaloniaProAlternative rozwiązania sgcUI_Demos.sln, z plikiem readme.html. W pobraniu dem projekt odwołuje się do pakietów NuGet sgcUI.

Jak je uruchomić

dotnet build sgcUIAvaloniaProAlternative.csproj -c Release dla edycji Registered, a dla edycji Community dodaj -p:SgcCommunity=true, w której karty Diagram i Rich text są ukryte. Następnie uruchom sgcUIAvaloniaProAlternative.exe.

Autotest

sgcUIAvaloniaProAlternative.exe /selftest [file.txt] wyświetla każdą kartę, uruchamia testy, zapisuje po jednym wierszu PASS lub FAIL na test i kończy działanie, zwracając liczbę nieudanych testów. W edycji Registered przechodzi 52 testy, a w edycji Community 47.

Uczciwie wobec obu: Avalonia to framework, na którym działa sgcUI, i ta strona nie prosi Cię o jego porzucenie. Avalonia Pro daje komponenty premium i narzędzia w jednej subskrypcji, a niektóre z nich nie mają odpowiednika w sgcUI. sgcUI daje kontrolki harmonogramu, analityki, diagramu, pulpitu, kreatora, mapy i raportów, których nie ma na stronie Avalonia Pro, te same kontrolki dla WinForms i WPF oraz pełny kod źródłowy z licencją na programistę. Wiele zespołów użyje obu. Informacje o produktach i edycjach znajdziesz na stronie produktu sgcUI.

Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Dodaj pierwszą kontrolkę już dziś

Dodaj bezpłatne pakiety Community z NuGet albo pakiety Registered z wszystkimi funkcjami i pełnym kodem źródłowym, i otwórz przykład AvaloniaProAlternative obok swojej aplikacji.