C# 如何在循环中更新ShellTile
我想能够通过循环的ShellTile的是固定在开始屏幕和更新的背景图像个别。我的问题是背景颜色没有正确地更新瓷砖。在按钮单击事件中,如果当前的tileCount大于0,则循环浏览Tile并更新颜色。在我的代码中,我可以看到循环正常工作,并且检索和更新了正确的磁贴,但是在开始屏幕上,几个磁贴具有相同的背景颜色,一些磁贴即使在不应该更新的情况下也会被更新。我无法找出问题所在,但我的代码如下 要注意的是,Settings.RecentTiles.Value包含根据ShellTile创建的日期时间创建的tile uri的ObservableCollection,我使用它的索引来搜索要更新的正确tile 按钮点击事件C# 如何在循环中更新ShellTile,c#,windows-phone-8,live-tile,C#,Windows Phone 8,Live Tile,我想能够通过循环的ShellTile的是固定在开始屏幕和更新的背景图像个别。我的问题是背景颜色没有正确地更新瓷砖。在按钮单击事件中,如果当前的tileCount大于0,则循环浏览Tile并更新颜色。在我的代码中,我可以看到循环正常工作,并且检索和更新了正确的磁贴,但是在开始屏幕上,几个磁贴具有相同的背景颜色,一些磁贴即使在不应该更新的情况下也会被更新。我无法找出问题所在,但我的代码如下 要注意的是,Settings.RecentTiles.Value包含根据ShellTile创建的日期时间创建的
if (tileCount > 0)
{
string title = null;
title = Settings.RecentTiles.Value[tileCount - 1];
string tileParameter = "uri=Tiles_" + title;
ShellTile Tile = CheckIfTileExist(tileParameter); // Check if Tile's title has been used
if (Tile != null)
{
try
{
var LiveTile = new StandardTileData
{
BackgroundImage = background
};
Tile.Update(LiveTile);
tileCount -= 1;
}
catch (Exception)
{
MessageBox.Show("Error");
}
}
}
还有我的CheckIfTileExists方法
可能是因为您的磁贴具有相似的URI?我不使用Contains,而是使用Equals。好吧,它不认为Contains语句中的所有内容都是完全匹配的吗?我认为这可能是一个bug,每次我运行代码时,我都会看到正确的ShellTile Uri被更新,但是将更新多个ShellTile的固定。您能否提供一个快速示例,说明如何使用Equals检查ShellTile是否固定?我刚刚注意到我使用==运算符,下面是我确定是否固定了tile的代码:if ShellTile.ActiveTiles.Firstt=>t.NavigationUri.ToString==toPin.Urav!=无效的
private ShellTile CheckIfTileExist(string tileUri)
{
ShellTile shellTile = ShellTile.ActiveTiles.FirstOrDefault(tile => tile.NavigationUri.ToString().Contains(tileUri));
return shellTile;
}