Primary WinUI APIs:
Primary Avalonia APIs:
| WinUI idiom | Avalonia idiom |
|---|---|
| ItemsView generalized items surface | ItemsControl/ListBox based surface |
| LayoutPanel layout strategies | ItemsPanelTemplate + custom panels |
| virtualized items realization | VirtualizingStackPanel with recycling-friendly templates |
| item container states | item container styles/selectors |
WinUI XAML:
<muxc:ItemsView ItemsSource="{x:Bind ViewModel.Items}">
<muxc:ItemsView.Layout>
<muxc:StackLayout Spacing="8" />
</muxc:ItemsView.Layout>
</muxc:ItemsView>
WinUI C#:
var itemsView = new ItemsView
{
ItemsSource = ViewModel.Items,
Layout = new StackLayout { Spacing = 8 }
};
Avalonia XAML:
<ListBox xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ItemsSource="{Binding Items}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Avalonia C#:
var list = new ListBox
{
ItemsSource = viewModel.Items,
ItemTemplate = itemTemplate
};
ListBox + VirtualizingStackPanel for production-ready virtualization.