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