0
我使用下面的代碼來呈現UIElement
。RenderTargetBitmap.RenderAsync參數異常
var bitmap = new RenderTargetBitmap();
await bitmap.RenderAsync(elementToRender); //this line throws the exception
var pixelBuffer = await bitmap.GetPixelsAsync();
var wb = new WriteableBitmap(1, 1);
wb = await wb.FromPixelBuffer(pixelBuffer, bitmap.PixelWidth, bitmap.PixelHeight);
var stream = await wb.GetStream();
這是我的XAML:
<Grid x:Name="elementToRender" Background="White" Width="400" Height="400">
<Ellipse Fill="Black" />
</Grid>
我稱這種方法爲頁面加載後,但如果我嘗試使用此代碼我得到一個例外,這是堆棧跟蹤:
System.ArgumentException
HResult=-2147024809
Message=Value does not fall within the expected range.
Source=mscorlib
StackTrace:
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
我該如何解決這個問題?
鑑於(據我所知)WritableBitmap沒有FromPixelBuffer方法(加上它返回一個任務和框架方法通常以「異步」結束) - 我會假設這是你自己的擴展方法?你可以將代碼粘貼到這個方法嗎? –
問題是這行「await bitmap.RenderAsync(elementToRender);」,我得到異常 – frenk91
在這種情況下...這是類似於http://stackoverflow.com/questions/35642908/rendertargetbitmap-renderasync-value -does-not-fall-within-expected-range –