我一直在努力弄清楚如何更改与我的应用程序关联的 WP8 磁贴的背景颜色。我尝试使用以下格式在 TemplateIconic 标记下的 WMAppManifest.xml 中设置 BackgroundColor 属性...
AARRGGBB
RRGGBB
这些似乎都不起作用,瓷砖始终是手机上设置的当前强调色。有人能指出我正确的方向吗?提前致谢。
我一直在努力弄清楚如何更改与我的应用程序关联的 WP8 磁贴的背景颜色。我尝试使用以下格式在 TemplateIconic 标记下的 WMAppManifest.xml 中设置 BackgroundColor 属性...
这些似乎都不起作用,瓷砖始终是手机上设置的当前强调色。有人能指出我正确的方向吗?提前致谢。
您可以使用类似的方法设置应用程序磁贴的所有属性,包括 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,则不会显示您的自定义背景颜色,而是显示默认主题颜色。
根据微软的说法,该值必须是#AARRGGBB。但我无法让它发挥任何价值。它似乎只是忽略它。http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207009(v=vs.105).aspx
"如果 BackgroundColor 元素的颜色值不是以#FF 开头,例如#FF524742,则不会显示您的自定义背景颜色,而是显示默认主题颜色。"