Primary WPF APIs:
Application, WindowStartupUriShow(), ShowDialog(), owned windowsPrimary Avalonia APIs:
AppBuilder.StartWithClassicDesktopLifetime(args)IClassicDesktopStyleApplicationLifetimeWindow.Show(), Window.ShowDialog(owner)| WPF | Avalonia |
|---|---|
App.xaml + StartupUri |
assign MainWindow in OnFrameworkInitializationCompleted() |
Application.Current.Windows |
lifetime window tracking and explicit references |
ShutdownMode assumptions |
explicit close behavior via lifetime and window logic |
| WPF | Avalonia |
|---|---|
child.Owner = this; child.Show(); |
child.Show(owner) |
ShowDialog() blocking |
async await ShowDialog(owner) |
WPF C#:
var settings = new SettingsWindow { Owner = this };
settings.ShowDialog();
Avalonia XAML:
<Button xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:MyApp.ViewModels"
x:DataType="vm:MainWindowViewModel"
Content="Settings"
Command="{CompiledBinding OpenSettingsCommand}" />
using System.Threading.Tasks;
using Avalonia.Controls;
public static async Task OpenSettingsAsync(Window owner)
{
var settings = new Window
{
Width = 480,
Height = 320,
Title = "Settings"
};
await settings.ShowDialog(owner);
}