Oberflächen für .NET.
Überall gleich.
Kuonen.UI zeichnet jedes Control selbst – auf Windows, Linux, macOS, Android, iOS und im Browser pixelgleich. Oberflächen in C# oder KXAML, mit Live-Designer in Visual Studio Code.
<StackPanel xmlns="https://ui.kuonen.org/kxaml"
xmlns:x="https://ui.kuonen.org/kxaml/x"
x:Class="Kasse.Bestellung" Spacing="12">
<TextBlock Text="Neue Bestellung" FontSize="22" />
<DatePicker SelectedDate="{Binding Lieferdatum}" />
<DataGrid ItemsSource="{Binding Positionen}" />
<Button Content="Bestellen" Click="Bestellen" />
<TextBlock x:Name="Status" />
</StackPanel>Alles aus einer Hand
Kein Browser-Steuerelement, keine Fremdbibliothek: Kuonen.UI bringt Rasterung, Text, Layout und Controls selbst mit – darum sieht eine Anwendung überall gleich aus und startet als einzelne native Datei.
Eigene Darstellung
Vektorgrafik, Text mit Formung und Bidi, Bilder und Themes – auf jeder Plattform dieselben Pixel.
AOT und Trimming
Keine Reflexion: Anwendungen werden nativ kompiliert, starten sofort und bleiben klein.
KXAML
XAML ohne Laufzeit-Parser: der Generator übersetzt beim Bauen in C#, mit Bindungen, Styles und Vorlagen.
Designer für VS Code
Live-Vorschau beim Tippen, Controls aus der Werkzeugkiste ablegen, Ereignisse per Doppelklick anlegen.
Barrierefrei
Bildschirmleser auf allen Plattformen: UI Automation, AT-SPI, NSAccessibility, TalkBack, VoiceOver, ARIA.
269 Controls und Bausteine
Von Button bis DataGrid, Kalender, Farbwahl und Dialogen – im Stil von Fluent, Adwaita, Breeze, macOS, Material und iOS.
So sieht Code aus
Die Oberfläche in KXAML, das Verhalten in C# – oder alles in C#. Beides wird zu gewöhnlichem, schnellem Code.
<StackPanel xmlns="https://ui.kuonen.org/kxaml"
xmlns:x="https://ui.kuonen.org/kxaml/x"
x:Class="Kasse.Bestellung" Spacing="12">
<TextBlock Text="Neue Bestellung" FontSize="22" />
<DatePicker SelectedDate="{Binding Lieferdatum}" />
<DataGrid ItemsSource="{Binding Positionen}" />
<Button Content="Bestellen" Click="Bestellen" />
<TextBlock x:Name="Status" />
</StackPanel>public sealed partial class Bestellung
{
public Bestellung() => InitializeComponent();
private void Bestellen(object sender, RoutedEventArgs e) =>
Status.Text = "Bestellung gespeichert";
}In fünf Minuten zum ersten Fenster
Paketquelle eintragen, Host der Plattform einbinden, starten. Der Designer kommt als Erweiterung für VS Code dazu.