UWP,App.Xaml:覆盖默认画刷

4
如果我需要覆盖画刷中的颜色,我会像这样在App.xaml中设置它:
<Application.Resources> 

     ...

       <ResourceDictionary>
                <ResourceDictionary.ThemeDictionaries>
                    <ResourceDictionary x:Key="Light">
                        <SolidColorBrush x:Key="PivotHeaderForegroundUnselectedBrush" Color="#A7A9AC" />
                        <SolidColorBrush x:Key="PivotHeaderForegroundSelectedBrush" Color="Black" />
                    </ResourceDictionary>
                </ResourceDictionary.ThemeDictionaries>
            </ResourceDictionary>

         ...
</Application.Resources> 

编辑器会下划线标记 <ResourceDictionary> ,并提示“每个词典条目必须有关联的键”。如何解决此问题?

1
资源字典的容器是什么(即父对象/XAML)? - Igor Ralic
1
<Application.Resources> ... </Application.Resources> - Francesco Bonizzi
2
当我只在app.xaml中包含xaml代码时,我无法重现这个问题。你能否在一个空的UWP项目中仅使用这些xaml代码来重现这个问题?也许你有更多的东西在那里?如果你能提供一个新的空白项目的重现步骤,那将会很有帮助。 - Alan Yao - MSFT
2个回答

4

多亏 @Alan Yao - MSFT 的帮助,我解决了这个问题。 也许您还有更多的东西在那里?,我确实有其他的东西,写进了 ResourceDictionary 中。通过将 ResourceDictionary 设为 Application.Resources 内所有内容的父级,我解决了这个问题。


1
是的……我为这个问题苦苦挣扎了很久。非常感谢! - Błażej

0

ResourceDictionary 必须放置在应用程序资源中:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Light">
                <SolidColorBrush x:Key="PivotHeaderForegroundUnselectedBrush" Color="#A7A9AC" />
                <SolidColorBrush x:Key="PivotHeaderForegroundSelectedBrush" Color="Black" />
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>

@misiMe,好的,我在你添加评论之前已经回答了你的问题。所以没有扣分的理由。 - user2250152

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接