Esempio n. 1
0
        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());
                }
            }
        }