我想在特定页面的范围内覆盖主题资源,特别是SystemAccentColor
。
我已经成功地在应用范围内完成了它。但我无法针对特定页面进行此操作。
App.xaml中的XAML(这很好用)
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<Color x:Key="SystemAccentColor">#862E2D</Color>
<SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Black"/>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
Page.xaml
中的XAML(这不起作用)
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<Color x:Key="SystemAccentColor">#111111</Color>
<SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="Black"/>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Page.Resources>
<!-- Control to test that the resource is overriden. The `ProgressBar` uses the accent color by default -->
<ProgressBar
Height="10"
Grid.ColumnSpan="3"
VerticalAlignment="Top"
IsIndeterminate="True" />
我不知道为什么资源没有在页面范围内被覆盖。
我尝试从App.xaml
删除覆盖,只覆盖Page.xaml
中的资源,但这也不起作用。
但是,如果我这样做
Page.xaml
<ProgressBar
Height="10"
Grid.ColumnSpan="3"
VerticalAlignment="Top"
IsIndeterminate="True"
Foreground="{StaticResource SystemControlHighlightAccentBrush}"/>
然后ProgressBar
获得正确的前景值。这意味着卵子确实发生了。
有人知道为什么会这样吗?或者我如何覆盖特定页面的主题资源?
答案 0 :(得分:0)
最好的方法是使用Visual Studio或&#39; Blend for Visual Studio&#39;。我正在使用Visual Studio