Example #1
0
        public void ChangeCollection(List <string> folderPath)
        {
            Scrolled = null;
            // Некий класс-фильтр вернет список файлов. Класс-фильтр сам решает, какие типы грузить, загружать подпапки или нет

            //List<string> files = new List<string>();

            Images = new List <IImageStructure>();

            var _tmp = new List <IImageStructure>();

            // Кормим менеджер путем к файлу, получаем кешированную копию, генерим АвтоСтаки и складываем в список
            using (AlbumClassLibrary.CacheManager.CacheManager manager = new AlbumClassLibrary.CacheManager.CacheManager(this.cacheFilePath))
            {
                foreach (var item in folderPath)
                {
                    var n = new ClassDir.ImageStructure(manager.GetSize(item), item);
                    n.Size = this.CurrentSize;

                    this.Scrolled += n.VisabilityChanged;
                    n.ImageNeeded += N_ImageNeeded;
                    _tmp.Add(n);
                }
            }

            this.Images = _tmp;
        }
Example #2
0
        private async void N_ImageNeeded(object sender, EventArgs e)
        {
            await Task.Run(() =>
            {
                ClassDir.ImageStructure image = sender as ClassDir.ImageStructure;

                using (AlbumClassLibrary.CacheManager.CacheManager manager = new AlbumClassLibrary.CacheManager.CacheManager(this.cacheFilePath))
                {
                    image.LoadMaxSizedImage(manager.GetImage(image.OriginalFilepath));
                }
            });
        }