我想将我的应用程序(windows通用应用程序)中的重音颜色从默认颜色更改为我的应用程序中定义的自定义颜色。
知道我该怎么办?
答案 0 :(得分:1)
我在微软论坛上找到了这个,并帮助我解决了这个问题:
答案 1 :(得分:1)
您无法真正更改应用程序中的基本Accent颜色,因为它是由系统主题颜色(任务栏,Startmenu等等)定义的。但是,您可以使用样式修改重音颜色。这是一个例子:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1">
<!-- Basic Colors -->
<SolidColorBrush x:Key="SystemAccentTransparentHighBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.9"/>
<SolidColorBrush x:Key="SystemAccentTransparentMediumHighBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.7" />
<SolidColorBrush x:Key="SystemAccentTransparentMediumBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.6" />
<SolidColorBrush x:Key="SystemAccentTransparentMediumLowBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.5" />
<SolidColorBrush x:Key="SystemAccentTransparentLowBrush" Color="{ThemeResource SystemAccentColor}" Opacity="0.3" />
<SolidColorBrush x:Key="SystemAccentHighlightBrush" Color="{ThemeResource SystemAccentColor}" />
<SolidColorBrush x:Key="SystemBlackBrush" Color="{ThemeResource SystemChromeBlackHighColor}" />
<SolidColorBrush x:Key="SystemWhiteBrush" Color="{ThemeResource SystemChromeWhiteColor}" />
<SolidColorBrush x:Key="SystemGreyHighBrush" Color="#FFE0E0E0" />
<SolidColorBrush x:Key="SystemGreyMediumHighBrush" Color="#FFA0A0A0" />
<SolidColorBrush x:Key="SystemGreyMediumBrush" Color="#FF808080" />
<SolidColorBrush x:Key="SystemGreyMediumLowBrush" Color="#FF606060" />
<SolidColorBrush x:Key="SystemGreyLowBrush" Color="#FF404040" />
<SolidColorBrush x:Key="SystemAppBackgroundBrush" Color="{ThemeResource ApplicationPageBackgroundThemeBrush}" />
<Style x:Key="GridStyle_Page" TargetType="Grid">
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
<Setter Property="Background" Value="{StaticResource SystemBlackBrush}" />
</Style>
</ResourceDictionary>
您可以将它放在styles.xaml文件中。然后你必须在App.xaml文件中告诉系统如下:
<Application
x:Class="App1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
RequestedTheme="Light">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
最后,您可以通过执行以下操作之一来使用应用程序中的样式/颜色:
要修改强调色,您需要将其叠加在背景色上。请注意上面的SolidColorBrush定义。其中一些具有不透明度设置。此设置的范围介于1.0和0.0之间,其中1.0完全不透明,而0.0完全透明。因此,不透明度设置越低,底层颜色显示的越多。如果底层颜色为黑色,则较低的不透明度设置将为您提供更暗的强调颜色。如果底层颜色为白色,那么当不透明度值减小时,您将获得更轻的强调颜色。
关于样式的说明:xaml的大部分工作方式是通过样式。计算机上有几个文件定义了系统中所有样式的内容。这些文件是generic.xaml和themeresources.xaml。在我的系统(带有VS2015的Windows 10 Pro RTM)上,可以在以下位置找到这些文件:
C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.10240.0\Generic
我希望这对你迟到的答案有所帮助和抱歉。我在google搜索其他内容时遇到了你的问题。
答案 2 :(得分:0)
您是否尝试过使用:
(App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush).Color = Colors.Blue;
你的App.xaml.cs?