我正在尝试调用WriteableBitmap.WritePixels方法,但我似乎无法理解参数.
MSDN文章非常愚钝(或者说我说… null?),我不明白如何使用该方法.
MSDN文章非常愚钝(或者说我说… null?),我不明白如何使用该方法.
编辑:
我试图修改这篇文章的代码:
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap%28v=VS.90%29.aspx
PixelFormat pf = PixelFormats.Rgba128Float; WriteableBitmap wb = new WriteableBitmap(width * 5,height * 5,100,pf,new BitmapPalette(new List<Color> { Color.FromArgb(255,255,0) })); byte[] ColorData = { 0,0 }; wb.WritePixels(new Int32Rect(0,1,1),ColorData,4,0); Background.Source = wb;
在最后一行之前的行中,调试器声称缓冲区(ColorData)的大小不够.
EDIT2:
我再试一次:
void RefreshGraphics() { PixelFormat pf = PixelFormats.Pbgra32; WriteableBitmap wb = new WriteableBitmap(width * 5,0) })); byte[] ColorData = new byte[1000]; byte t = 0; for (int i = 0; i < 1000; i++) ColorData[i] = t++; wb.WritePixels(new Int32Rect(0,10,10),0); Background.Source = wb; }
现在“价值不在预期的范围”.
stackTrace不知道哪一个…
解决方法
检查高度和宽度的值.也许字节数组根本不够大!