0

我有下一个代码:

var bmp = new WriteableBitmap((int)size.Width, (int)size.Height);
  bmp.Render(new Canvas(){Background = new SolidColorBrush(Colors.White)}, null);
  bmp.Invalidate();
return bmp;

我如何获得颜色:

var backColor = Application.Current.Resources["PhoneBackgroundColor"].ToString();
var foreColor = Application.Current.Resources["PhoneForegroundColor"].ToString();

我需要用白色背景渲染图像。但是这段代码总是用黑背渲染图像。前台没问题,我用下一个结构测试过:

Canvas
   Textblock - with black foreground
   Textblock - with black foreground

那么问题出在哪里?

4

1 回答 1

0

您需要指定画布的大小,否则它的默认宽度和高度为 0,从而导致透明的 WriteableBitmap。

bmp.Render(new Canvas() { Background = new SolidColorBrush(Colors.White), Width=(int)size.Height, Height=(int)size.Height }, null);
于 2013-02-25T11:35:44.560 回答