Ejemplo n.º 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;
        }
Ejemplo n.º 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));
                }
            });
        }
        public SettingsLayout()
        {
            InitializeComponent();
            CacheFilePathTextBox.Text = Properties.Settings.Default.CacheFilePath + Properties.Settings.Default.CacheFileName;

            using (AlbumClassLibrary.CacheManager.CacheManager manager = new AlbumClassLibrary.CacheManager.CacheManager(CacheFilePathTextBox.Text))
            {
                CacheSizeLabel.Content = String.Format(CacheSizeLabel.Content.ToString(), manager.CacheSize);
            }

            MaxFilesTextbox.Text = Properties.Settings.Default.MaxFilesToLoad.ToString();
            this.Loaded         += SettingsLayout_Loaded;
        }