我正在尝试加载从Windows手机媒体库中选择的图片,我已经完成了选择所需的图片,我无法使用此代码将图片加载到我的画布命名区域:
void photochoosertask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
WriteableBitmap bitMap = new WriteableBitmap(200,200);
Extensions.LoadJpeg(bitMap, e.ChosenPhoto);
Canvas.SetLeft(area, 10);
Canvas.SetTop(area, 10);
bitMap.Render(area, null);
bitMap.Invalidate();
}
}
但是我无法处理这段代码......有什么建议.. ?? 或者如何完成这项任务?这是正确的方法吗?
由于
答案 0 :(得分:0)
要在Canvas中显示位图,您必须向Children
集合添加Image控件,该集合使用位图作为其Source
:
var bitmap = new WriteableBitmap(200, 200);
Extensions.LoadJpeg(bitmap, e.ChosenPhoto);
var image = new Image();
image.Source = bitmap;
Canvas.SetLeft(image, 10);
Canvas.SetTop(image, 10);
area.Children.Add(image);
由于e.ChosenPhoto
是一个流,您可能也可以使用BitmapImage而不是WriteableBitmap,并将其源流设置为e.ChosenPhoto
。然后,您可以将图像控件的大小设置为所需的值。
var bitmap = new BitmapImage();
bitmap.SetSource(e.ChosePhoto);
var image = new Image();
image.Source = bitmap;
image.Width = 200;
image.Height = 200;
Canvas.SetLeft(image, 10);
Canvas.SetTop(image, 10);
area.Children.Add(image);
答案 1 :(得分:0)
if (e.TaskResult == TaskResult.OK)
{
BitmapImage bi = new BitmapImage();
bi.SetSource(e.ChosenPhoto);
WriteableBitmap b = new WriteableBitmap(bi);
Image img = new Image();
img.Source = b;
Canvas.SetLeft(img, 10);
Canvas.SetTop(img, 10);
area.Children.Add(img);
}