2

我一直在努力弄清楚如何更改与我的应用程序关联的 WP8 磁贴的背景颜色。我尝试使用以下格式在 TemplateIconic 标记下的 WMAppManifest.xml 中设置 BackgroundColor 属性...

AARRGGBB

RRGGBB

这些似乎都不起作用,瓷砖始终是手机上设置的当前强调色。有人能指出我正确的方向吗?提前致谢。

4

2 回答 2

1

您可以使用类似的方法设置应用程序磁贴的所有属性,包括 BackgroundColor 属性。

//REFERENCE: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207009(v=vs.105).aspx
// Set all the properties of the Application Tile.
private void SetApplicationTile()
{
    // Application Tile is always the first Tile, even if it is not pinned to Start.
    ShellTile TileToFind = ShellTile.ActiveTiles.First();

    // Application should always be found
    if (TileToFind != null)
    {
        IconicTileData TileData = new IconicTileData()
        {
            Title = "My App title",
            WideContent1 = "New Wide Content 1",
            WideContent2 = "New Wide Content 2",
            WideContent3 = "New Wide Content 3",
            //Count = 2,
            //BackgroundColor = Colors.Blue, 
            //BackgroundColor = new Color { A = 255, R = 200, G = 148, B = 255 },
            //BackgroundColor = Color.FromArgb(255, 200, 148, 55),
            //BackgroundColor = (Color)Application.Current.Resources["PhoneAccentColor"],
            BackgroundColor = HexToColor("#FF7A3B3F"),
            IconImage = new Uri("Assets/Tiles/IconicTileMediumLarge.png", UriKind.Relative),
            SmallIconImage = new Uri("Assets/Tiles/IconicTileSmall.png", UriKind.Relative),
        };

        // Update the Application Tile
        TileToFind.Update(TileData);
    }
}

public static Color HexToColor(string hex)
{
    return Color.FromArgb(
        Convert.ToByte(hex.Substring(1, 2), 16),
        Convert.ToByte(hex.Substring(3, 2), 16),
        Convert.ToByte(hex.Substring(5, 2), 16),
        Convert.ToByte(hex.Substring(7, 2), 16)
        );
}

重要的提示

如果不将 BackgroundColor 属性的 A 参数设置为 255,则不会显示您的自定义背景颜色,而是显示默认主题颜色。

于 2013-05-21T04:35:31.223 回答
0

根据微软的说法,该值必须是#AARRGGBB。但我无法让它发挥任何价值。它似乎只是忽略它。http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207009(v=vs.105).aspx

"如果 BackgroundColor 元素的颜色值不是以#FF 开头,例如#FF524742,则不会显示您的自定义背景颜色,而是显示默认主题颜色。"

于 2013-04-26T19:21:36.320 回答