Primary WinUI APIs:
Primary Avalonia APIs:
| WinUI idiom | Avalonia idiom |
|---|---|
| WinUI control/template/state pipeline | Avalonia control theme/style/selector pipeline |
x:Bind or {Binding} data flow |
{CompiledBinding ...} and typed x:DataType flow |
| WinUI layout/render invalidation model | Avalonia InvalidateMeasure/InvalidateArrange/InvalidateVisual model |
WinUI XAML:
<Page
x:Class="MyApp.Views.SamplePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyApp.Controls">
<local:StatusCard StatusText="{x:Bind ViewModel.Status, Mode=OneWay}" />
</Page>
WinUI C#:
var view = new StatusCard();
Avalonia XAML:
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:MyApp.ViewModels"
xmlns:local="using:MyApp.Controls"
x:DataType="vm:SampleViewModel">
<local:StatusCard StatusText="{CompiledBinding Status}" />
</UserControl>
Avalonia C#:
var card = new StatusCard { StatusText = viewModel.Status };