BoldSignEasily embed eSignatures in your .NET applications. Free sandbox with native SDK available.
protected async Task<IRandomAccessStream> GenerateImage(UIElement diagram) { // Render to an image at the current system scale and retrieve pixel contents var renderTargetBitmap = new RenderTargetBitmap(); // unselect all nodes ObservableCollection<TraNode> nodes = ((diagram as SfDiagram).Nodes as ObservableCollection<TraNode>); if(nodes != null && nodes.Count > 0) { foreach (var node in nodes) { node.IsSelected = false; } } await renderTargetBitmap.RenderAsync(diagram); var pixelBuffer = await renderTargetBitmap.GetPixelsAsync(); var pixelBytes = new byte[pixelBuffer.Length]; using (var reader = DataReader.FromBuffer(pixelBuffer)) { reader.ReadBytes(pixelBytes); } IRandomAccessStream stream = new InMemoryRandomAccessStream(); var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream); encoder.SetPixelData( BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)renderTargetBitmap.PixelWidth, (uint)renderTargetBitmap.PixelHeight, DisplayInformation.GetForCurrentView().LogicalDpi, DisplayInformation.GetForCurrentView().LogicalDpi, pixelBytes); await encoder.FlushAsync(); return stream; } |