2016-09-09 3 views
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?

+0

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? –

+0

das Problem ist diese Zeile "erwarten bitmap.RenderAsync (elementToRender);", ich bekomme die Ausnahme dort – frenk91

+0

In diesem Fall ... ist das ähnlich http://stackoverflow.com/questions/35642908/rendertargetbitmap-renderasync-value -does-not-fall-in-the-expected-Bereich –

Antwort

0

Das Problem war, dass das XAML-Element, das die „elementToRender“ enthält hat seine eigene Sicht auf Komprimiert

Verwandte Themen