У меня есть метод, который выполняется в Application_Deacitvated/Closing().Не удается получить динамически сгенерированную работу плитки (Windows Phone)
public bool createBackTile()
{
if(AlarmClock.IsExists())
{
ImageBrush background = new ImageBrush()
{
ImageSource = new BitmapImage(new Uri("/BackBackgroundTheme.png", UriKind.Relative)),
AlignmentX = AlignmentX.Center,
AlignmentY = AlignmentY.Center
};
// Preparing tile image.
TextBox tileImageData = new TextBox()
{
Text = AlarmClock.Read().ToShortTimeString(),
FontSize = 45,
FontWeight = FontWeights.Bold,
Foreground = new SolidColorBrush(Colors.White),
//Background = background,
Height = 173,
Width = 173,
HorizontalContentAlignment = HorizontalAlignment.Center,
VerticalContentAlignment = VerticalAlignment.Center,
Padding = new Thickness(-12),
Margin = new Thickness(0),
Clip = new RectangleGeometry { Rect = new Rect(0, 0, 173, 173) }
};
Canvas canvas = new Canvas()
{
Width = 173,
Height = 173,
Background = background,
Margin = new Thickness(0)
};
canvas.Children.Add(tileImageData);
// Saving tile image.
WriteableBitmap tileImage = new WriteableBitmap(173, 173);
tileImage.Render(canvas, null);
tileImage.Render(tileImageData, null);
tileImage.Invalidate();
using(var stream = IsolatedStorageFile.GetUserStoreForApplication().CreateFile("/Shared/ShellContent/BackBackground.jpg"))
{
tileImage.SaveJpeg(stream, 173, 173, 0, 100);
}
// Sets data for tile.
StandardTileData tileData = new StandardTileData()
{
BackgroundImage = new Uri("BackgroundAlarmSet.png", UriKind.Relative),
BackBackgroundImage = new Uri(@"isostore:/Shared/ShellContent/BackBackground.jpg"),
BackContent = "",
BackTitle = "",
};
// Sets tile.
ShellTile.ActiveTiles.FirstOrDefault().Update(tileData);
return true;
}
return false;
}
Итак, как вы можете видеть, я хочу создать плитки с моим текстом в его центре с изображением фона «BackBackgroundTheme.png». Эта плитка, которую я пытаюсь сохранить в IsolStorage и назначить ей BackBackgroundImage.
Но это не работает. Плитка перевернулась, но BackBackground полностью черная. Я загрузил этот управляемый фон, и кажется, что это действительно черный ящик. Итак, как заставить его работать?
Вы ступили через него убедившись, его ударом всего кода? На первый взгляд все выглядит правильно. – Etch
Да, я установил точку останова для каждой отдельной строки, и кажется, что вся строка выполнена правильно. – Andrzej
Небольшое изменение, я добавил «использование» после «tileImage.Invalidate();» и теперь плитка перевернулась, но BackBackground полностью черная. – Andrzej