Подтвердить что ты не робот

Изменение цвета Accent в Windows 10 UWP

Я действительно не хочу использовать цвет акцента, который пользователь выбрал в Windows в моем приложении, и вместо этого хочу иметь собственное цветовое шоу. Я могу изменить его вручную на всех элементах, создав новые стили, но это просто во многих местах обычных элементов управления, что было бы неплохо сделать на уровне приложения.

Я пробовал настройку <SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" />, но по какой-то причине это отмечает некоторые элементы и превращает других, например, в виде серых.

4b9b3361

Ответ 1

В WinWW UWP цвет System Accent определяется как ThemeResource SystemControlHighlightAccentBrush. Вы можете переопределить его следующим образом.

<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>

Ответ 2

Чтобы изменить цвет акцента на каждом системном элементе управления, вы должны переопределить системный ресурс следующим образом.

Обратите внимание, что 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>

Ответ 3

Добавьте следующее в App.xaml, если вы не используете никаких шаблонов или ResourceDictionaries:

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

Если вы используете шаблон Minimal Template10, добавьте следующую строку в Styles/Custom.xaml после значений CustomColor и ContrastColor:

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

Если у вас есть собственный ResourceDictionary в другом месте, связанный с App.xaml, то аналогичным образом добавьте туда строку "Цвет".

Ответ 4

Для меня работала настройка

 <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, чтобы перезаписать onese, установленный окнами.