Kuonen.UI ist ein Oberflächen-Framework für .NET 10 mit eigener Darstellung: Jedes Control zeichnet sich selbst, auf jeder Plattform gleich. Oberflächen entstehen in C# oder in KXAML, einer XAML-Sprache, die beim Bauen zu C# übersetzt wird – ohne Reflexion, darum AOT- und trimming-tauglich.
Was du brauchst
- das .NET 10 SDK
- die Paketquelle von Kuonen.UI (siehe Installation)
- für den Designer: Visual Studio Code mit der Erweiterung Kuonen KXAML (siehe Download)
Die erste Anwendung
Eine Konsolenanwendung und ein Paket genügen: Kuonen.UI.App wählt beim Start den Host der Plattform – Windows, Linux, macOS, Android, iOS oder
den Browser – und bringt alles Übrige mit.
dotnet new console -n Hallo
cd Hallo
dotnet add package Kuonen.UI.App
Program.cs wird nicht gebraucht und kann gelöscht werden.
Die Oberfläche in Hauptseite.kxaml:
<StackPanel xmlns="https://ui.kuonen.org/kxaml"
xmlns:x="https://ui.kuonen.org/kxaml/x"
x:Class="Hallo.Hauptseite"
Margin="24" Spacing="12">
<TextBlock x:Name="Gruss" Text="Hallo Kuonen.UI" FontSize="24" />
<Button Content="Klick mich" Click="Klick" />
</StackPanel>
Der Code dazu in Hauptseite.kxaml.cs:
using Kuonen.UI.Ereignisse;
namespace Hallo;
public sealed partial class Hauptseite
{
private int _klicks;
public Hauptseite() => InitializeComponent();
private void Klick(object sender, RoutedEventArgs e) => Gruss.Text = $"{++_klicks} Mal geklickt";
}
Und die Anwendung in App.cs – eine Klasse, kein Main:
using Kuonen.UI.App;
using Kuonen.UI.Controls;
namespace Hallo;
public sealed class App : KuonenAnwendung
{
public override Window ErzeugeHauptfenster() =>
new() { Title = "Hallo", Width = 480, Height = 320, Content = new Hauptseite() };
}
dotnet run öffnet das Fenster. Den Einstieg schreibt der KXAML-Generator beim Bauen; dieselben Dateien laufen unter Windows, Linux und macOS und
mit den Workloads auch auf Android und iOS. Wie das geht und wie sich der Host von Hand wählen lässt, steht unter Ein Paket für alle.
Wie es weitergeht
- Ein Paket für alle: Hostwahl, Android und iOS, nur der nötige Host im veröffentlichten Paket
- KXAML: Elemente, Eigenschaften, Bindungen, Ressourcen, Styles und Vorlagen
- Designer: Live-Vorschau in VS Code, Controls ablegen, Ereignisse anlegen
- Controls: alle Controls nach Bereichen
- Beispiele: die Galerie mit Bild und Code zu jedem Control
- Lizenz: Ausgaben und Lizenzschlüssel