private void SaveGraphAsImage() { //TODO: ENSURE THAT DATA IS EVEN PRESENT ON THE GRAPH //TODO: THIS SHOULD BE DECOUPLED ImageTools.IO.Encoders.AddEncoder <ImageTools.IO.Jpeg.JpegEncoder>(); ImageTools.IO.Encoders.AddEncoder <ImageTools.IO.Png.PngEncoder>(); UI.GraphViewModel graphVM = UI.ViewModelLocator.GraphDataStatic; ImageTools.ExtendedImage myImage = graphVM.GraphToImage(); System.Windows.Controls.SaveFileDialog saveFileDialog = new System.Windows.Controls.SaveFileDialog(); saveFileDialog.Filter = "JPEG Files (*.jpg)|*.jpg|PNG Files (*.png)|*.png"; saveFileDialog.FilterIndex = 1; bool?dialogResult = saveFileDialog.ShowDialog(); if (dialogResult == true) { using (Stream fs = (Stream)saveFileDialog.OpenFile()) { myImage.WriteToStream(fs, saveFileDialog.SafeFileName); } } }