创建IconicTile时无法在独立存储中加载图像

时间:2013-01-13 04:36:18

标签: windows-phone windows-phone-8

我正在尝试使用保存在独立存储上的图像创建IconicTile。

首先,我将图像保存到隔离存储中。

// bitmap is Stream of image source (e.g. from PhotoChooserTask)
var wbmp = new WriteableBitmap(bitmap);
var file = "Shared/ShellContent/IconicTile.png";
// when file exists, delete it
if (storage.FileExists(file))
{
    storage.DeleteFile(file);
}
using (var isoFileStream = new IsolatedStorageFileStream(file, FileMode.Create, storage))
{
    // use ToolStackPNGWriterExtensions
    wbmp.WritePNG(isoFileStream);
}

我已确认使用Isostorage Explorer Tools成功创建了PNG文件。 然后我尝试创建IconicTile。

var initialData = new IconicTileData
{
    BackgroundColor = SelectedColor,
    IconImage = new Uri("isostore:/Shared/ShellContent/IconicTile.png", UriKind.Absolute),             
    Title = tbTitle.Text,
    WideContent1 = tbWideContent1.Text,
    WideContent2 = tbWideContent2.Text,
    WideContent3 = tbWideContent3.Text
};
var uri = string.Format("/SecondaryPage.xaml");

var TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(uri));
if (TileToFind == null)
    ShellTile.Create(new Uri(uri, UriKind.Relative), initialData, true);
else
    TileToFind.Update(initialData);

但创建的图块中的图像是白色的。 (我想附上图片,但我的名声太低。抱歉。)

我不仅尝试了PNG格式,还尝试了JPG格式,但两者都不起作用。

无论如何在IsolatedStorage上使用图像创建IconicTile?

1 个答案:

答案 0 :(得分:2)

标志性瓷砖格式需要透明背景,基于您在第一行的注释(PhotoChooserTask),我怀疑您使用的是某种类型的图像而没有透明度。