이것은 Windows 8.1에서 약간 변경되었으며 RenderTargetBitmap을 사용하여 수행 할 수 있습니다. RenderTargetBitmap.RenderAsync (UIElement)를 사용하면 페이지를 포함한 모든 요소의 픽셀을 가져올 수 있습니다.
다음은 FileSavePicker를 사용하여 지정된 파일에 PNG를 저장하는 예입니다.
var filePicker = new FileSavePicker();
var file = await filePicker.PickSaveFileAsync();
var renderTargetBitmap = new RenderTargetBitmap();
using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream);
await renderTargetBitmap.RenderAsync(this);
var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();
var pixelBytes = pixelBuffer.ToArray();
encoder.SetPixelData(
BitmapPixelFormat.Bgra8,
BitmapAlphaMode.Ignore,
(uint)renderTargetBitmap.PixelWidth,
(uint)renderTargetBitmap.PixelHeight,
96.0,
96.0,
pixelBytes);
await encoder.FlushAsync();
}
확실한가요? –
확실히 Windows Phone 8에서 작동합니다.이 문제가 계속 발생하면 확인하고 알려주세요. –
음, WinRT에서 테스트해야한다고 생각합니다. –