Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[XBAP - Partial Trust] 'Screenshot' van FrameworkElement

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een 'screenshot' maken van een FrameworkElement in WPF (: het venster) om het vervolgens te converteren naar een image object of iets dergelijks (uiteindelijk moet dit object geconverteerd worden naar een byte array zodat het naar een WCF webservice verzonden kan worden)

Het gaat om een XBAP applicatie die draait in partial trust(!) (dit is een eis, full trust is dus geen optie)

Normaal zou ik 'RenderTargetBitmap' gebruiken om dit te realiseren:

BitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
MemoryStream memoryStream = new MemoryStream();
encoder.Save(memoryStream);


Het probleem is dat BitmapFrame.Create absoluut niet toegestaan is in partial trust (de welbekende SecurityExceptions)
In het volgende topic wordt dit ook aangegeven: http://social.msdn.micros...c-49d7-9b89-11ef41238b25/

Ik heb ook een variant met de methode 'CopyPixels' geprobeerd maar dit is ook onmogelijk in partial trust:

Byte[] rgbValues = new Byte[renderTargetBitmap.PixelWidth * 4 * renderTargetBitmap.PixelHeight];
renderTargetBitmap.CopyPixels(rgbValues, renderTargetBitmap.PixelWidth * 4, 0);

Bitmap bmp = new Bitmap(renderTargetBitmap.PixelWidath, renderTargetBitmap.PixelHeight, System.Drawing.Imging.PixelFormat.Format32bppRgb)


Ik heb echt overal gezocht maar het lijkt technisch onmogelijk om dit voor elkaar te krijgen. Heeft iemand een idee voor een workaround of een alternatieve oplossing voor het maken van deze screenshot?

Verwijderd

Topicstarter
Het is overigens wel mogelijk om de klasses van System.Drawing te gebruiken, hiermee kan ik wel converteren naar streams e.d. (dit wordt ook aangegeven in het topic uit de openingspost)
Het probleem zit echter in de converteer slag van een WPF venster naar een bruikbaar object dat ik zou kunnen converteren.