Как установить цвет спины WriteableBitmap для живой плитки в Mango? - PullRequest
0 голосов
/ 08 ноября 2011

Я пытаюсь динамически построить живую плитку. Он работает нормально, благодаря некоторым предложениям SO, и у меня есть этот код:

WriteableBitmap wbmp = new WriteableBitmap(173, 173);


TextBlock text = new TextBlock() { FontSize = (double)Resources["PhoneFontSizeLarge"], Foreground = new SolidColorBrush(Colors.White) };

text.Text = "my text";
wbmp.Render(text, new TranslateTransform() { Y = 20 });
wbmp.Invalidate();

// save image to isolated storage
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
     using (IsolatedStorageFileStream imageStream = new IsolatedStorageFileStream("/Shared/ShellContent/MyImage.jpg", System.IO.FileMode.Create, isf))
            {

                wbmp.SaveJpeg(imageStream, wbmp.PixelWidth, wbmp.PixelHeight, 0, 100);
            }
}

Проблема в том, что у плитки черный (или, лучше, прозрачный) фон. Я хотел бы использовать цвет фона акцента, как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Решено таким образом:

Canvas can = new Canvas();
can.Background = (SolidColorBrush)Application.Current.Resources["PhoneAccentBrush"];
can.Width = 173;
can.Height = 173;

wbmp.Render(can, null);
0 голосов
/ 15 декабря 2011

Вам лучше использовать Resources ["TransparentBrush"] в качестве фона, а затем сохранить в png, в противном случае ваша плитка будет иметь неправильный цвет при смене темы.

...