我需要在Windows Phone 8应用程序中更新几个辅助磁贴上的数据。我正在使用BackGround代理来更新磁贴。
IconicTileData tileData = new IconicTileData
{
IconImage = new Uri("ApplicationIcon.png", UriKind.RelativeOrAbsolute),
Title = "My Tile title",
Count = new Random().Next(1, 10),
};
ShellTile mainTile = ShellTile.ActiveTiles.FirstOrDefault();
if (mainTile != null)
{
mainTile.Update(tileData);
}
// If debugging is enabled, launch the agent again in one minute.
#if DEBUG_AGENT
ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(60));
#endif
这里是更新mainTile数据。但是,如何找到固定的辅助磁贴数量以及如何单独更新它们?
答案 0 :(得分:1)
为ShellTile.ActiveTiles
冻结MSDN documentation:此列表包括无法删除的应用程序磁贴及其所有辅助磁贴。 Application Tile始终是集合中的第一个。
所以:
foreach (var tile in ShellTile.ActiveTiles)
{
//update the tile
}
答案 1 :(得分:0)
如您所知,每个磁贴都有一些导航URI。您可以在导航URI的查询字符串中搜索唯一的单词。
ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("unique key/value in querystring"));
通过这种方式,您可以通过迭代它们并检查导航URI来识别所有辅助切片。