2017-10-21 122 views

回答

4

当然,这段代码做到这一点:

static async Task<SoftwareBitmap> CreateSoftwareBitmap(FrameworkElement uielement) 
{ 
    var renderTargetBitmap = new RenderTargetBitmap(); 
    await renderTargetBitmap.RenderAsync(uielement); 

    IBuffer pixels = await renderTargetBitmap.GetPixelsAsync(); 
    var bitmap = SoftwareBitmap.CreateCopyFromBuffer(pixels, 
                BitmapPixelFormat.Bgra8, 
                renderTargetBitmap.PixelWidth, 
                renderTargetBitmap.PixelHeight, 
                BitmapAlphaMode.Premultiplied); 
    return bitmap; 
} 

做这样的,如果你想显示SoftwareBitmapImage控制:

var softwareBitmap = await CreateSoftwareBitmap(MyXamlControl); 
var source = new SoftwareBitmapSource(); 

await source.SetBitmapAsync(softwareBitmap); 
MyImageControl.Source = source;