Search code examples
xamluwpapp.xaml

"Nested properties are not supported" when trying to override accent color [UWP]


I'm trying to override the accent color in my UWP app but when I add the code to App.xaml the error "Nested properties are not supported" shows up. Is it caused by the fact that in the same code I also override the color of an InkToolbar?

This is my App.xaml:

<Application
    x:Class="App12.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App12"
    RequestedTheme="Light">
    <Application.Resources>
        <SolidColorBrush x:Key="InkToolbarButtonBackgroundThemeBrush">Transparent</SolidColorBrush>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Default">
                <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Orange" />
            </ResourceDictionary>
            <ResourceDictionary x:Key="Dark">
                <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Green" />
            </ResourceDictionary>
            <ResourceDictionary x:Key="Light">
                <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Blue" />
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </Application.Resources>
</Application>

Solution

  • You need to wrap them within a ResourceDictionary.

    <Application.Resources>
        <ResourceDictionary> <!-- this -->
            <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Orange" />
            <ResourceDictionary.ThemeDictionaries>
                <ResourceDictionary x:Key="Default">
                    <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Orange" />
                </ResourceDictionary>
                <ResourceDictionary x:Key="Dark">
                    <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Green" />
                </ResourceDictionary>
                <ResourceDictionary x:Key="Light">
                    <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Blue" />
                </ResourceDictionary>
            </ResourceDictionary.ThemeDictionaries>
        </ResourceDictionary> <!-- this -->
    </Application.Resources>