在App中覆盖强调色

时间:2015-02-17 13:18:40

标签: windows-runtime windows-phone-8.1 winrt-xaml

我尝试为自己的应用创建自己的设计。其中一个主要问题是,我想用自己的颜色替换强调色。

现在我可以用这个覆盖画笔:

<Color x:Key="AppAccentColor">#ff6b53</Color>

<SolidColorBrush x:Key="PhoneAccentBrush" Color="{StaticResource AppAccentColor}"/>

现在如果我将PhoneAccentBrush分配到某处,它会显示正确的颜色。但是,如果我单击TextBox,边框仍然是系统设置中设置的颜色的颜色。

我试图覆盖这些颜色,例如:

<SolidColorBrush x:Key="PhoneTextBoxEditBorderBrush"
                         Color="{StaticResource AppAccentColor}" />

但这似乎没有效果。

此外,我尝试创建一个新样式并复制我在系统上的8.1 ​​\ Design [Theme] \ System.Windows.xaml文件夹中找到的样式。但是在这里他找不到位于同一文件夹中ThemeResources.xaml中的不同资源。一旦我导入它,他就不能再进行构建了。我究竟做错了什么 ? o.O

由于 NPadrutt

1 个答案:

答案 0 :(得分:1)

在Windows Phone 8.1运行时应用程序中,还有另一种覆盖主题颜色的方法。您可以在 App.xaml 文件中执行此操作。以下是更改TextBox突出显示的边框颜色的示例:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Default">
                <SolidColorBrush x:Key="TextSelectionHighlightColorThemeBrush" Color="Magenta" />
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>

您的TextBox将如下所示:
enter image description here

检查可以用这种方式覆盖的画笔的完整列表:https://msdn.microsoft.com/en-us/library/windows/apps/dn518235.aspx

正如您在我的解决方案中所看到的,我将其用于默认样式。但是您可以为 Light Dark 样式提供不同的选项。