Exemple #1
0
        /// <summary> Открыть папку с картинками для разметки. </summary>
        public void OpenFolderImage()
        {
            _folderDialog.Description = "Укажите папку с изображениями для рамзетки.\nВ ней будет создан файл проекта.";
            if (_folderDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }

            string path = _folderDialog.SelectedPath;

            filesDirectory = Directory.EnumerateFiles(path, "*.*", SearchOption.TopDirectoryOnly)
                             .Where(s => s.EndsWith(".png") || s.EndsWith(".jpg") || s.EndsWith(".bmp") || s.EndsWith(".jpeg"));

            if (_imageForMarkup.ListImg.Count != 0)
            {
                _imageForMarkup.ListImg.Clear();
            }


            foreach (var item in filesDirectory)
            {
                _imageForMarkup.AddImageInList(item, Path.GetFileName(item));
            }

            _imageForMarkup.PathDirectoryImage = path;


            OnEnabledElement();
            _imageForMarkup.ShowImg();
            ChangeTextClass();
            _log.AddMessage("Папка открыта.");
        }
        /// <summary> Загруить проект. </summary>
        public static void Load(ImageForMarkup markup, Log log, string path)
        {
            XDocument doc = XDocument.Load(path);

            markup.PathDirectoryImage = doc.Root.Element("PathDirectoryImage").Value;
            markup.CurerntIamge       = int.Parse(doc.Root.Element("CurerntIamge").Value);


            var filesDirectory = Directory.EnumerateFiles(markup.PathDirectoryImage, "*.*", SearchOption.TopDirectoryOnly)
                                 .Where(s => s.EndsWith(".png") || s.EndsWith(".jpg") || s.EndsWith(".bmp") || s.EndsWith(".jpeg"));

            if (markup.ListImg.Count != 0)
            {
                markup.ListImg.Clear();
            }

            foreach (var item in filesDirectory)
            {
                markup.AddImageInList(item, Path.GetFileName(item));
            }

            if (markup.CountImage != int.Parse(doc.Root.Element("CountImage").Value))
            {
                MessageBox.Show("Ранее в этой папке было другое колличество картинок. Могут быть проблемы. Проект может быть открыт не корректно.",
                                "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }


            foreach (XElement imageElement in doc.Root.Element("ImageList").Elements("Image"))
            {
                XAttribute idAttribute    = imageElement.Attribute("id");
                XElement   idClassElement = imageElement.Element("IdClassImage");

                if (idAttribute != null && idClassElement != null)
                {
                    markup.ListImg[int.Parse(idAttribute.Value)].IdClass = int.Parse(idClassElement.Value);
                }
            }

            log.AddMessage("Проект загружен. Спасибо, что вернулись к работе!");
        }