private void TakeChartScreenshot(object sender, RoutedEventArgs e) { if (!isPlotFrozen) { return; } string fileName = activeChart.Title; if (string.IsNullOrEmpty(fileName)) { fileName = "screenshot.png"; } else { fileName = fileName.ToLower().Replace(" ", "_") + ".png"; } var saveFileDialog = new Microsoft.Win32.SaveFileDialog { InitialDirectory = Path.Combine(Directory.GetCurrentDirectory(), App.ScreenshotsDir), CheckPathExists = true, FilterIndex = 2, Title = "Save chart screenshot", DefaultExt = "png", Filter = "png files |*.png", FileName = fileName }; if (saveFileDialog.ShowDialog() == true && saveFileDialog.FileName != "") { int imageWidth = 800; using (MemoryStream imageStream = activeChart.ExportPng(imageWidth, (int)(imageWidth * 9.0 / 16.0))) { File.WriteAllBytes(saveFileDialog.FileName, imageStream.ToArray()); } } }