所以简而言之,我的问题是我的动态磁贴的背景图像没有更新。
我知道正确的图像在独立存储中,并且我也知道它被设置为磁贴的图像,但是只有当前未查看的磁贴大小会更新。对于当前用于更新的图块大小,用户必须在图块大小之间循环数次。我认为这个问题与正在构建的切片缓存有关,并且不容易被清除。但是,我尝试了几种不同的方法来清除它 - 清除磁贴上的所有属性,为每个图标设置唯一的文件名,但都没有奏效 - 我仍然被迫循环浏览磁贴或取消固定并重新固定图标更新。
是否有任何解决方案或解决方法可以强制更新?
编辑:我使用的代码是:
Canvas canvasIcon = DrawCanvas(100, 172, 30, 30, brushWhite, brushWhite, PenLineCap.Square, 10);
WriteableBitmap wbIcon = new WriteableBitmap(canvasIcon, null);
wbIcon.Invalidate();
var stream = new IsolatedStorageFileStream("Shared/ShellContent/icon.png", FileMode.OpenOrCreate, isoStore);
wbIcon.WritePNG(stream);
stream.Close();
IconicTileData iconicTile = new IconicTileData() {
SmallIconImage = new Uri("isostore:/Shared/ShellContent/smallicon.png", UriKind.Absolute),
Title = "Placeholder",
IconImage = new Uri("isostore:/Shared/ShellContent/icon.png", UriKind.Absolute)
};
ShellTile tile = ShellTile.ActiveTiles.First();
tile.Update(iconicTile);