如何更改windows通用app默认重音色?

时间:2015-02-20 11:25:39

标签: xaml windows-phone-8.1 win-universal-app

我想将我的应用程序(windows通用应用程序)中的重音颜色从默认颜色更改为我的应用程序中定义的自定义颜色。

知道我该怎么办?

3 个答案:

答案 0 :(得分:1)

我在微软论坛上找到了这个,并帮助我解决了这个问题:

http://www.familie-smits.com/theming-in-a-universal-app

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

最后,您可以通过执行以下操作之一来使用应用程序中的样式/颜色:

  1. 将Style =“{StaticResource}”添加到您的元素中 想要风格。你会用一种风格取而代之 在上面的Styles.xaml文件中定义。
  2. 添加颜色属性,例如Forground,Background或Border 要着色的元素。为此,添加类似的东西 Background =“{StaticResource}”所在的位置 取而代之的是上面的一种颜色样式。
  3. 要修改强调色,您需要将其叠加在背景色上。请注意上面的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?