是否可以在xaml winrt应用程序中创建自定义主题画笔?

时间:2013-02-01 19:48:46

标签: .net xaml windows-runtime

我想在我的应用中创建一个solidbrush资源,它将根据所选主题改变颜色。

有没有这样做?

1 个答案:

答案 0 :(得分:4)

好吧我明白了。在StandardStyles.xaml中有一个部分

在这里,您可以为每个不同的主题添加相同的实心画笔元素。

<ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">
        <x:String x:Key="BackButtonGlyph">&#xE071;</x:String>
        <x:String x:Key="BackButtonSnappedGlyph">&#xE0BA;</x:String>
        <SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="#CEE3F8"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="#E0E0E0"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="#CEE3F8"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="#CEE3F8"></SolidColorBrush>
        <SolidColorBrush x:Key="HeaderBrush" Color="#FF8AA1B8">

        </SolidColorBrush>
    </ResourceDictionary>
    <ResourceDictionary x:Key="Light">
        <SolidColorBrush x:Key="HeaderBrush" Color="#FFCEE3F8">

        </SolidColorBrush>
    </ResourceDictionary>
    <ResourceDictionary x:Key="HighContrast">
        <x:String x:Key="BackButtonGlyph">&#xE0A6;</x:String>
        <x:String x:Key="BackButtonSnappedGlyph">&#xE0C4;</x:String>
    </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>

在这里,我添加了一个“Light”主题,并在2个主题中添加了一个名为“HeaderBrush”的实体画笔。

要实现此画笔,只需将其作为资源添加到元素中。像这样......

<AppBar x:Name="BottomAppBar1"   Padding="10,0,10,0" BorderBrush="Blue"  BorderThickness="0 1 0 0" Background="{ThemeResource HeaderBrush}"  AutomationProperties.Name="Bottom App Bar" Opened="BottomAppBar1_Opened" Closed="BottomAppBar1_Closed">

这里我将画笔设置为背景颜色,现在它随主题自动更改。