在Windows 10 UWP中更改强调色

时间:2015-08-05 12:00:10

标签: c# xaml windows-10 uwp

我真的不想在我的应用程序中使用用户在Windows中选择的强调色,而是希望拥有自己的色彩显示。 我可以通过制作新样式手动更改所有项目,但它只是在普通控件的很多地方,在应用程序级别上做很好。

我尝试设置<SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" />,但出于某种原因注意某些项目并将其他视频控件变为灰色。

4 个答案:

答案 0 :(得分:23)

在Win10 UWP上,系统强调颜色定义为ThemeResource $ randseed -b 8 0xF45820D2895B88CE $ 。 您可以按以下方式覆盖它。

SystemControlHighlightAccentBrush

答案 1 :(得分:21)

要更改每个系统控件上的重音颜色,您必须重新定义系统资源,如下所示。

请注意,SystemAccentColor 是一种颜色,而不是画笔。如果您不重新定义所有其他画笔,则颜色不会应用于所有画笔。

<ResourceDictionary.ThemeDictionaries>
  <ResourceDictionary x:Key="Default">     
    <Color x:Key="SystemAccentColor">#FF20A060</Color>  <!--Your accent color-->

    <SolidColorBrush x:Key="SystemControlBackgroundAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlDisabledAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlForegroundAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlHighlightAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlHighlightAltAccentBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="SystemControlHighlightAltListAccentHighBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.9" />
    <SolidColorBrush x:Key="SystemControlHighlightAltListAccentLowBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.6" />
    <SolidColorBrush x:Key="SystemControlHighlightAltListAccentMediumBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.8" />
    <SolidColorBrush x:Key="SystemControlHighlightListAccentHighBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.9" />
    <SolidColorBrush x:Key="SystemControlHighlightListAccentLowBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.6" />
    <SolidColorBrush x:Key="SystemControlHighlightListAccentMediumBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.8" />
    <SolidColorBrush x:Key="SystemControlHyperlinkTextBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="ContentDialogBorderThemeBrush" Color="{ThemeResource SystemAccentColor}" />
    <SolidColorBrush x:Key="JumpListDefaultEnabledBackground" Color="{ThemeResource SystemAccentColor}" />
  </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>

答案 2 :(得分:4)

如果您没有使用任何模板或ResourceDictionaries,请将以下内容添加到App.xaml中:

<ResourceDictionary>
    <Color x:Key="SystemAccentColor">#FFCB2128</Color>
</ResourceDictionary>

如果您使用的是Minimal Template10模板,请在CustomColor和ContrastColor值之后将以下行添加到Styles / Custom.xaml:

<Color x:Key="SystemAccentColor">#FFCB2128</Color>

如果您在其他地方有自己的ResourceDictionary,从App.xaml链接,那么同样添加&#34; Color&#34;在那里。

答案 3 :(得分:1)

对我有用的是设置

 <SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" />
    <Color x:Key="SystemAltHighColor">#FFCB2128</Color>
    <Color x:Key="SystemAltLowColor">#FFCB2128</Color>
    <Color x:Key="SystemAltMediumColor">#FFCB2128</Color>
    <Color x:Key="SystemAltMediumHighColor">#FFCB2128</Color>
    <Color x:Key="SystemAltMediumLowColor">#FFCB2128</Color>
    <Color x:Key="SystemBaseHighColor">#FFCB2128</Color>
    <Color x:Key="SystemBaseLowColor">#FFCB2128</Color>
    <Color x:Key="SystemBaseMediumColor">#FFCB2128</Color>
    <Color x:Key="SystemBaseMediumHighColor">#FFCB2128</Color>
    <Color x:Key="SystemBaseMediumLowColor">#FFCB2128</Color>

在app.xaml文件中,为了覆盖windows设置的一个。