Primary WinUI APIs:
Source, ms-appx packagingPrimary Avalonia APIs:
| WinUI idiom | Avalonia idiom |
|---|---|
| XamlReader.Load runtime fragments | AvaloniaRuntimeXamlLoader.Parse/Load |
ResourceDictionary Source (ms-appx) |
ResourceInclude/StyleInclude (avares) |
| compiled XAML + runtime fallback | compiled XAML + explicit runtime loader |
| package-relative resource URI | avares://Assembly/Path.axaml |
WinUI XAML:
<Page.Resources>
<ResourceDictionary Source="ms-appx:///Themes/Shared.xaml" />
</Page.Resources>
WinUI C#:
var dynamicButton = (UIElement)XamlReader.Load("<Button xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Content='Dynamic' />");
Avalonia XAML:
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Resources>
<ResourceInclude Source="avares://MyApp/Styles/Shared.axaml" />
</UserControl.Resources>
<ContentPresenter />
</UserControl>
Avalonia C#:
var dynamicButton = AvaloniaRuntimeXamlLoader.Parse<Button>(
"<Button xmlns='https://github.com/avaloniaui' Content='Dynamic' />");
var doc = new RuntimeXamlLoaderDocument(new Uri("avares://MyApp/Views/DynamicView.axaml"), xamlText);
var view = AvaloniaRuntimeXamlLoader.Load(doc);
avares:// and verify assembly/resource packaging paths.