Eine Avalonia App lässt sich mit sehr wenig Aufwand klonen. Dieser Beitrag zeigt, wie Du aus jeder einfachen Avalonia App eine Multi Window App machen kannst. Los geht’s!
Mehrere Fenster in Avalonia: Warum Deine App davon profitiert
Avalonia bringt echte Desktop-Power in moderne .NET-Anwendungen – und das plattformübergreifend. Eine der unterschätzten Stärken: die Möglichkeit, mit einer Multi-Window App zu arbeiten. Warum das mehr ist als nur ein nettes Feature:
Paralleles Arbeiten wird Realität:
Deine Nutzer müssen nicht mehr zwischen Tabs wechseln. Hauptansicht hier, Detailfenster dort, Einstellungen im dritten Fenster – alles gleichzeitig im Blick. Das ist echter Workflow-Boost für Deine Avalonia App.
Jedes Fenster macht sein Ding:
Ein Fenster zeigt die Übersicht, ein anderes die Details, das nächste vielleicht einen Live-Preview. Jedes lädt seine Inhalte eigenständig, ohne die anderen zu blockieren. Der gemeinsame State bleibt synchron.
Plattformübergreifend performant:
Avalonia nutzt hardwarebeschleunigte Grafik und bleibt dabei schlank. Mehrere Fenster? Kein Problem – egal ob Windows, macOS oder Linux. Die Performance stimmt überall.
Professioneller Eindruck:
Nutzer erwarten von professionellen Desktop-Anwendungen Multi-Window-Support. Mit Avalonia lieferst du genau das – ohne Kompromisse bei der User Experience.
Einfache Integration:
Avalonia macht es dir leicht. Neue Fenster öffnen, ViewModels zuweisen, fertig.
Das Ergebnis ist eine Avalonia App, die sich anfühlt wie eine native Desktop-Anwendung.

Avalonia App Fenster klonen
Um das Avalonia App Fenster zu klonen fügen wir in der Datei MainWindow.axaml.cs folgenden Code ein:
|
1 2 3 4 5 6 7 8 9 10 11 |
private void OnCloneWindow(object? sender, RoutedEventArgs e) { var t = this.Title + " (clone)"; var clone = new MainWindow { Position = new PixelPoint(this.Position.X + 20, this.Position.Y + 20) }; clone.Show(); clone.AppTitle.Text = t; clone.ShowPage(this._currentPage); // Optional } |
Die Funktion erstellt eine neue Instanz von MainWindow , in der Position um 20 Pixel auf der xy-Achse versetzt. Nach Einblenden erhält der Fenster-Titel den Zusatz “(clone)”. Die letzte Anweisung navigiert zu den Klon zur gleichen Seite wie das original Fenster.
Getriggert wird unsere Funktion zum Fenster-Klonen dann z.B. über einen entsprechenden Button, hier ein Beispiel für das ActiPro Avalonia Framework:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<actipro:WindowTitleBar DockPanel.Dock="Top" BorderThickness="0,0,0,1" Padding="0"> <TextBlock x:Name="AppTitle" Margin="20 0 0 0"/> <actipro:WindowTitleBar.LeftContent> <Button Margin="0,0,0,0" Click="OnToggleDrawerClick" ContentTemplate="{actipro:GlyphTemplate Menu16}" Theme="{actipro:ControlTheme TitleBarButton}" HorizontalAlignment="Left"/> </actipro:WindowTitleBar.LeftContent> <actipro:WindowTitleBar.RightContent> <Button Margin="0,0,0,0" Content="+" FontSize="16" Click="OnCloneWindow" Theme="{actipro:ControlTheme TitleBarButton}" HorizontalAlignment="Right"/> </actipro:WindowTitleBar.RightContent> </actipro:WindowTitleBar> |
Fertig ist unsere Avalonia Multi-Window App :-)



