0
Ich verwende den folgenden Code zum Rendern einer UIElement
.RenderTargetBitmap.RenderAsync Argument Ausnahme
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();
das ist mein XAML:
<Grid x:Name="elementToRender" Background="White" Width="400" Height="400">
<Ellipse Fill="Black" />
</Grid>
ich diese Methode aufrufen, nachdem die Seite geladen wird, aber wenn ich versuche, diesen Code ich eine Ausnahme erhalten zu verwenden, ist dies die Stacktrace:
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()
Wie kann ich das beheben?
Da (soweit ich weiß) WritableBitmap keine FromPixelBuffer Methode (hat und es wird eine Rückkehr Aufgabe und eine Framework-Methode enden normalerweise in "Async" - ich nehme an, dass dies Ihre eigene Erweiterungsmethode ist? Können Sie den Code in diese Methode einfügen? –
das Problem ist diese Zeile "erwarten bitmap.RenderAsync (elementToRender);", ich bekomme die Ausnahme dort – frenk91
In diesem Fall ... ist das ähnlich http://stackoverflow.com/questions/35642908/rendertargetbitmap-renderasync-value -does-not-fall-in-the-expected-Bereich –