画像を生成し、これをライブ タイムの画像として使用して、より多くの情報を提供し、外観をより細かく制御できるようにします。問題は、画像を正常に生成している間に、自分の背景画像が含まれていないことです。
次のコードは機能し、画像を正常に取得します
ShellTile defaultTile = ShellTile.ActiveTiles.First();
defaultTile.Update(new StandardTileData
{
Title = item2.NextDateTime.ToShortTimeString(),
BackBackgroundImage = new Uri("Images/Tiles/tilebacking.png", UriKind.Relative),
BackTitle = item2.NextDateTime.ToShortTimeString(),
BackContent = item2.Details
});
ただし、次のコードは、画像を生成している間、最初の画像を含んでいません (Var ロゴのように)。これを行うためのコードを Web で見つけましたが、最初の背景画像を含める以外は問題なく動作しているようです。
var bmp = new WriteableBitmap(173, 173);
var logo = new BitmapImage(new Uri("Images/Tiles/tilebacking.png", UriKind.Relative));
var img = new Image { Source = logo };
// Force the bitmapimage to load it's properties so the transform will work
logo.CreateOptions = BitmapCreateOptions.None;
var bl = new TextBlock();
bl.Foreground = new SolidColorBrush(Colors.White);
bl.FontSize = 24.0;
bl.Text = "any text we want!";
bmp.Render(bl, null);
var tt = new TranslateTransform();
tt.X = 173 - logo.PixelWidth;
tt.Y = 173 - logo.PixelHeight;
bmp.Render(img, tt);
bmp.Invalidate();
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
var filename = "/Shared/ShellContent/testtile.jpg";
using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
{
bmp.SaveJpeg(st, 173, 173, 0, 100);
}
}
ShellTile defaultTile = ShellTile.ActiveTiles.First();
defaultTile.Update(new StandardTileData
{
Title = item2.NextDateTime.ToShortTimeString(),
BackgroundImage = new Uri("isostore:/Shared/ShellContent/testtile.jpg", UriKind.Absolute),
BackBackgroundImage = new Uri("isostore:/Shared/ShellContent/testtile.jpg", UriKind.Absolute),
BackTitle = item2.NextDateTime.ToShortTimeString(),
BackContent = item2.Details
});
ここで私が間違っていることは明らかです。最初の例で正常に動作するのは、同じファイルと同じファイル パスです。
ありがとう。