Realmente no quiero usar el color de acento que el usuario ha elegido en Windows en mi aplicación y, en cambio, quiero tener mi propio programa de colores. Puedo cambiarlo manualmente en todos los elementos creando nuevos estilos, pero está en tantos lugares en los controles normales, que sería bueno hacerlo en el nivel de la aplicación.
Intenté configurar <SolidColorBrush x:Key="SystemAccentColor" Color="#FFCB2128" /> pero, por alguna razón, eso hace que se noten algunos elementos y convierte a otros, como los controles de video, en grises.
En Win10 UWP, el color del acento del sistema se define como ThemeResource SystemControlHighlightAccentBrush . Puede anularlo de la siguiente manera.
<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>Para cambiar el color de acento en cada control del sistema, debe redefinir el recurso del sistema de la siguiente manera.
Tenga en cuenta que SystemAccentColor es un color, no un pincel . Si no redefine todos los demás pinceles, el color no se aplicará a todo.
<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>Agregue lo siguiente a App.xaml si no está usando ninguna plantilla o ResourceDictionaries:
<ResourceDictionary> <Color x:Key="SystemAccentColor">#FFCB2128</Color> </ResourceDictionary>Si está utilizando la plantilla Minimal Template10, agregue la siguiente línea a Styles/Custom.xaml después de los valores CustomColor y ContrastColor:
<Color x:Key="SystemAccentColor">#FFCB2128</Color>Si tiene su propio ResourceDictionary en otro lugar, vinculado desde App.xaml, agregue allí de manera similar la línea "Color".