private void AddImage(string fullName, string[] names, Image image) { var shortName = names[0]; if (names.Length == 1) { if (_images.ContainsKey(shortName)) { if (GetRootFolder().OnAddConflict(shortName, fullName)) { _images[shortName] = new ImageInfo(fullName, shortName, image); // TODO: Сделать более красиво. OnImageRemoved(fullName, shortName); OnImageAdded(fullName, shortName); } } else { _images.Add(shortName, new ImageInfo(fullName, shortName, image)); OnImageAdded(fullName, shortName); } return; } var folder = _folders.FirstOrDefault(f => f.Name == shortName); if (folder == null) { folder = new ImagesFolder(shortName, this); _folders.Add(folder); } var subNames = new string[names.Length - 1]; Array.Copy(names, 1, subNames, 0, names.Length - 1); folder.AddImage(fullName, subNames, image); }
private static ListViewItem CreateImageItem(ImageInfo info) { var lvi = new ListViewItem(info.ShortName, info.ShortName) {Name = info.ShortName}; var fi = ImageFormatInfo.FromImageFormat(info.Image.RawFormat); lvi.ToolTipText = string.Format("{0} {1}x{2}", fi.Extension, info.Image.Width, info.Image.Height); return lvi; }