0

我正在尝试加载从 windows phone 媒体库中选择的图片,并且我已经选择了所需的图片,但我无法使用以下代码将图像加载到我的画布命名区域:

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();
    }
}

但我无法使用此代码..任何建议..?? 或者如何做这个任务?这是正确的方法吗?

谢谢

4

2 回答 2

0

为了在 Canvas 中显示位图,您必须将Image控件添加到其Children集合中,该控件使用位图作为其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. 然后,您可以将 Image 控件的大小设置为所需的值。

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);
于 2013-06-06T11:51:37.263 回答
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);    
}
于 2013-06-06T11:54:54.650 回答