//void PackageManagerClient_RequestSetLoginState(object sender, LoginStateEventArgs e) //{ // PackageManagerLoginState.Text = e.Text; // PackageManagerLoginButton.IsEnabled = e.Enabled; //} void _vm_RequestSaveImage(object sender, ImageSaveEventArgs e) { if (!string.IsNullOrEmpty(e.Path)) { //var bench = dynSettings.Bench; //if (bench == null) //{ // DynamoLogger.Instance.Log("Cannot export bench as image without UI. No image wil be exported."); // return; //} var control = WPF.FindChild <DragCanvas>(this, null); double width = 1; double height = 1; // connectors are most often within the bounding box of the nodes and notes foreach (dynNodeModel n in dynSettings.Controller.DynamoModel.CurrentSpace.Nodes) { width = Math.Max(n.X + n.Width, width); height = Math.Max(n.Y + n.Height, height); } foreach (dynNoteModel n in dynSettings.Controller.DynamoModel.CurrentSpace.Notes) { width = Math.Max(n.X + n.Width, width); height = Math.Max(n.Y + n.Height, height); } var rtb = new RenderTargetBitmap(Math.Max(1, (int)width), Math.Max(1, (int)height), 96, 96, System.Windows.Media.PixelFormats.Default); rtb.Render(control); //endcode as PNG var pngEncoder = new PngBitmapEncoder(); pngEncoder.Frames.Add(BitmapFrame.Create(rtb)); try { using (var stm = File.Create(e.Path)) { pngEncoder.Save(stm); } } catch { DynamoLogger.Instance.Log("Failed to save the Workspace an image."); } } }
void DynamoViewModelRequestSaveImage(object sender, ImageSaveEventArgs e) { if (!string.IsNullOrEmpty(e.Path)) { var control = WPF.FindChild <DragCanvas>(this, null); double width = 1; double height = 1; // connectors are most often within the bounding box of the nodes and notes foreach (NodeModel n in dynamoViewModel.Model.CurrentWorkspace.Nodes) { width = Math.Max(n.X + n.Width, width); height = Math.Max(n.Y + n.Height, height); } foreach (NoteModel n in dynamoViewModel.Model.CurrentWorkspace.Notes) { width = Math.Max(n.X + n.Width, width); height = Math.Max(n.Y + n.Height, height); } var rtb = new RenderTargetBitmap(Math.Max(1, (int)width), Math.Max(1, (int)height), 96, 96, System.Windows.Media.PixelFormats.Default); rtb.Render(control); //endcode as PNG var pngEncoder = new PngBitmapEncoder(); pngEncoder.Frames.Add(BitmapFrame.Create(rtb)); try { using (var stm = File.Create(e.Path)) { pngEncoder.Save(stm); } } catch { dynamoViewModel.Model.Logger.Log("Failed to save the Workspace an image."); } } }