WriteableBitmap的程序崩溃,没有消息?(WriteableBitmap crashes

2019-10-18 07:09发布

我创建WriteableBitmap对象,画一条线,并尝试将其设置为源到Image控制。 出于某种原因,程序停止响应,然后关闭5秒后,当我尝试设置的来源。 任何人有任何的想法有什么不对? (我也使用WriteableBitmapEx)

WriteableBitmap bit = new WriteableBitmap(400, 400, 96, 96, PixelFormats.Bgr32, null);
WriteableBitmapExtensions.DrawLine(bit, 10, 10, 300, 300, Core.PrimaryColor.ColorValue);
ImageCanvas.Source = bit; // Sets the image to our bitmap, but program crashes for some reason!

Answer 1:

当我尝试你的代码,它抛出一个ArgumentException说

WriteableBitmap的需要输入有Pbgra32像素格式。 使用BitmapFactory.ConvertToPbgra32Format方法自动任何输入的BitmapSource转换为此类接受正确的格式\ r \ nParametername:WriteableBitmap的

因此,这个工程:

var bitmap = new WriteableBitmap(400, 400, 96, 96, PixelFormats.Pbgra32, null);
WriteableBitmapExtensions.DrawLine(bitmap, 10, 10, 300, 300, Colors.Black);
image.Source = bitmap;

更新:正如安德斯指出,你或许应该使用由WriteableBitmapEx提供的便携式点阵图工厂方法来创建位图:

var bitmap = BitmapFactory.New(400, 400);
WriteableBitmapExtensions.DrawLine(bitmap, 10, 10, 300, 300, Colors.Black);
image.Source = bitmap;


文章来源: WriteableBitmap crashes program with no message?