【问题标题】:ThemeResources not resolved in Windows Phone XAMLWindows Phone XAML 中未解析的 ThemeResources
【发布时间】:2015-02-15 17:22:41
【问题描述】:

这是我的问题:

在我的 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>

谁能告诉我为什么无法使用themeResources??

【问题讨论】:

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


    【解决方案1】:

    它是什么样的图像?它只是 Windows Phone Modern 风格的黑白图标吗?如果是这样,您可以在BitmapIcon 中使用它,Windows Phone 将为您着色。这是我的 64x64 图像示例。

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

    这是图片:

    但在应用程序中它看起来像这样:

    或这个

    ...取决于您的手机设置。

    【讨论】:

      【解决方案2】:

      根据 MSDN,用于您的字典的适当键是 LightDark,而不是 BlackWhite。见the documentation

      【讨论】:

        猜你喜欢
        • 2015-02-12
        • 2013-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-23
        • 1970-01-01
        相关资源
        最近更新 更多