ThemeResources未在Windows Phone XAML中解析

时间:2015-02-15 17:22:41

标签: c# .net xaml windows-phone windows-phone-8.1

这是我的问题:

在我的WP 8.1应用程序中,我必须创建一个带图像的按钮,此图像必须根据设备中使用的主题进行更改,否则它将被背景隐藏。

所以我尝试使用ThemeResource。但它无法解决。

以下是代码:

MainPage.xaml中

<Page.Resources>
    <ResourceDictionary>  
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="ButtonImage.xaml"/>
        </ResourceDictionary.MergedDictionaries>

....

<Button HorizontalAlignment="Left"
        VerticalAlignment="Top" 
        Width="40" Height="40"
        MinWidth="0" MinHeight="0"
        Padding="0"
        BorderThickness="1.5"
        Grid.Column="2"
        Style="{ThemeResource Button123}"/>

ButtonImage.xaml

<Style x:Key="ButtonImage" TargetType="Button">
...
</Style>

<ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Name="Black" x:Key="Black">
        <Style x:Key="ButtonAZ" BasedOn="{StaticResource ButtonImage}" TargetType="Button">
            <Setter Property="Content">
                <Setter.Value>
                    <Image Source="Assets/AtoZWhite.png"></Image>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="Button123" BasedOn="{StaticResource ButtonImage}" TargetType="Button">
            <Setter Property="Content">
                <Setter.Value>
                    <Image Source="Assets/123White.png"></Image>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>
    <ResourceDictionary x:Name="White" x:Key="White">
        <Style x:Key="ButtonAZ" BasedOn="{StaticResource ButtonImage}" TargetType="Button">
            <Setter Property="Content">
                <Setter.Value>
                    <Image Source="Assets/AtoZBlack.png"></Image>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="Button123" BasedOn="{StaticResource ButtonImage}" TargetType="Button">
            <Setter Property="Content">
                <Setter.Value>
                    <Image Source="Assets/123Black.png"></Image>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>

有人可以告诉我为什么impossibile使用themeResources?

2 个答案:

答案 0 :(得分:1)

它是什么样的形象?它只是一个黑色&amp; Windows Phone现代风格的白色图标?如果是这样,您可以在BitmapIcon中使用它,Windows Phone会为您着色。这是我用64x64图像的例子。

<Button>
    <BitmapIcon UriSource="Assets/Smile.png"
                Width="64"
                Height="64"/>
</Button>

这是图像:
enter image description here

但是在应用程序中它看起来像这样:
enter image description here
或此
enter image description here
...取决于您的手机设置。

答案 1 :(得分:0)

根据MSDN,用于词典的相应键是LightDark,而不是BlackWhite。请参阅the documentation