Primary WPF APIs:
ResourceDictionaryStaticResource, DynamicResourceMergedDictionariesPrimary Avalonia APIs:
ResourceDictionaryStaticResource and DynamicResource markup| WPF | Avalonia |
|---|---|
StaticResource |
StaticResource |
DynamicResource |
DynamicResource |
Application.Resources and merged dictionaries |
same concept |
| theme dictionary lookups | ThemeDictionaries and theme-variant resources |
WPF XAML:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/Colors.xaml" />
</ResourceDictionary.MergedDictionaries>
<SolidColorBrush x:Key="AccentBrush" Color="#0E639C" />
</ResourceDictionary>
</Application.Resources>
Avalonia XAML:
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceInclude Source="avares://MyApp/Styles/Colors.axaml" />
</ResourceDictionary.MergedDictionaries>
<SolidColorBrush x:Key="AccentBrush" Color="#0E639C" />
</ResourceDictionary>
</Application.Resources>
</Application>
<Button Background="{StaticResource AccentBrush}" />
<Border Background="{DynamicResource AccentBrush}" />
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml.Styling;
using Avalonia.Media;
var app = Application.Current!;
var dict = new ResourceDictionary
{
["AccentBrush"] = new SolidColorBrush(Color.Parse("#0E639C"))
};
dict.MergedDictionaries.Add(new ResourceInclude
{
Source = new Uri("avares://MyApp/Styles/Colors.axaml")
});
app.Resources.MergedDictionaries.Add(dict);
DynamicResource for theme-dependent values.