private void menuOpen_Click(object sender, RoutedEventArgs e) { if (Program.OpenProject()) { if (!ViewOpenCurrentProjectInWindow()) { WindowMsgError windowError = new WindowMsgError("Ошибка", "Ошибка открытия проекта"); } } }
//реализовано public static bool OpenProject(string path = "") { if (path == "") { Microsoft.Win32.OpenFileDialog openDlg = new Microsoft.Win32.OpenFileDialog(); #region SettingOpenFileDialog openDlg.InitialDirectory = PathFolder; openDlg.Title = "Загрузка файла"; openDlg.FileName = ""; openDlg.DefaultExt = ".epp"; openDlg.Filter = "Evacuation Plan Project (.epp)|*.epp"; #endregion if ((bool)openDlg.ShowDialog() != true) { return(false); } PathProject = openDlg.FileName; path = PathProject; } if (File.Exists(path)) { PathProject = path; using (FileStream fs = new FileStream(path, FileMode.Open)) { using (XmlTextReader xmlIn = new XmlTextReader(fs)) { try { CurrentProject = new Project(xmlIn); } catch { WindowMsgError windowError = new WindowMsgError("Ошибка при открытии проекта", "Неверный формат файла"); windowError.ShowDialog(); return(false); } } } return(true); } else { WindowMsgError errorFileNotFound = new WindowMsgError("Ошибка при открытии проекта", "Неверный путь к тесту"); errorFileNotFound.ShowDialog(); return(false); } }
private void menuExport_Click(object sender, RoutedEventArgs e) { //из интернета #region InternetVersion Rect bounds = VisualTreeHelper.GetDescendantBounds(myCanvasWork); double dpi = 96d * 3; RenderTargetBitmap rtb = new RenderTargetBitmap((int)bounds.Width * 3, (int)bounds.Height * 3, dpi, dpi, System.Windows.Media.PixelFormats.Default); DrawingVisual dv = new DrawingVisual(); using (DrawingContext dc = dv.RenderOpen()) { VisualBrush vb = new VisualBrush(myCanvasWork); dc.DrawRectangle(vb, null, new Rect(new Point(), bounds.Size)); } rtb.Render(dv); //cохранение в файл PngBitmapEncoder png = new PngBitmapEncoder(); png.Frames.Add(BitmapFrame.Create(rtb)); #region SaveDialog //настройка и вызов SaveDialog Microsoft.Win32.SaveFileDialog saveDlg = new Microsoft.Win32.SaveFileDialog(); saveDlg.InitialDirectory = Program.PathFolder; saveDlg.FileName = Program.CurrentProject.Name + "ExportImage"; saveDlg.Title = "Создание нового проекта"; saveDlg.DefaultExt = ".png"; saveDlg.Filter = "Portable Network Graphics (.png)|*.png"; if ((bool)saveDlg.ShowDialog() == true) { using (Stream stm = File.Create(saveDlg.FileName)) { png.Save(stm); } } else { WindowMsgError errorWindow = new WindowMsgError("Ошибка экспорта", "Изображение не сохранено"); } #endregion #endregion }
//----------------------------------------------------------------- private void menuNew_Click(object sender, RoutedEventArgs e) { //тест WindowCreateProject createProjectWinsow = new WindowCreateProject(); if (createProjectWinsow.ShowDialog() == true) { if (!ViewOpenCurrentProjectInWindow()) { WindowMsgError windowError = new WindowMsgError("Ошибка", "Ошибка создания проекта"); } } }
//реализовано public static bool NewProject(string Name) { Microsoft.Win32.SaveFileDialog createDlg = new Microsoft.Win32.SaveFileDialog(); #region SettingSaveFileDialog createDlg.InitialDirectory = PathFolder; createDlg.FileName = Name; createDlg.Title = "Создание нового проекта"; createDlg.DefaultExt = ".epp"; createDlg.Filter = "Evacuation Plan Project (.epp)|*.epp"; #endregion if ((bool)createDlg.ShowDialog()) { //создание файла на диске #region CreateFileOnDisk try { using (FileStream fs = new FileStream(createDlg.FileName, FileMode.Create)) { using (XmlTextWriter xmlOut = new XmlTextWriter(fs, Encoding.Unicode)) { Project newProject = new Project(Name); newProject.ListBuildObject.Add(new LineWall("Стена", new Point(10, 10), new Point(100, 100))); newProject.SaveToFile(xmlOut); } } } catch (Exception) { WindowMsgError errorFileNotExist = new WindowMsgError("Ошибка", "Тест не создан"); errorFileNotExist.ShowDialog(); return(false); } #endregion return(OpenProject(createDlg.FileName)); } return(false); }
//реализовано public static bool SaveOrSaveAsProject(string path = "") { //false если save bool saveOrSaveAs = false; if (path == "") { if (CurrentProject != null) { Microsoft.Win32.SaveFileDialog saveDlg = new Microsoft.Win32.SaveFileDialog(); #region SettingSaveFileDialog saveDlg.InitialDirectory = PathFolder; saveDlg.FileName = CurrentProject.Name; saveDlg.Title = "Создание нового проекта"; saveDlg.DefaultExt = ".epp"; saveDlg.Filter = "Evacuation Plan Project (.epp)|*.epp"; #endregion if ((bool)saveDlg.ShowDialog() != true) { return(false); } PathProject = saveDlg.FileName; path = PathProject; saveOrSaveAs = true; } } if (saveOrSaveAs || File.Exists(path)) { PathProject = path; //сохранение проекта на диске #region CreateProjectOnDisk try { using (FileStream fs = new FileStream(path, FileMode.Create)) { using (XmlTextWriter xmlOut = new XmlTextWriter(fs, Encoding.Unicode)) { CurrentProject.SaveToFile(xmlOut); } } } catch (Exception) { WindowMsgError errorFileNotExist = new WindowMsgError("Ошибка", "Проект не создан"); errorFileNotExist.ShowDialog(); return(false); } #endregion return(true); } return(false); }