コード例 #1
0
        public ViewModel(WidgetId id) : base(id)
        {
            Settings = id.GetSettings() as Settings;
            if (Settings == null)
            {
                return;
            }
            IsPaused = Settings.Freeze;
            ImageUrl = Settings.ImageUrl;

            TogglePlayPause = new RelayCommand(TogglePlayPauseExecute);
            Drop            = new RelayCommand <DragEventArgs>(DropExecute);

            _random = new Random();

            _changeTimer = new DispatcherTimer {
                Interval = Settings.ChangeInterval
            };
            _changeTimer.Tick += (sender, args) => NextImage();

            _directoryWatcher = new DirectoryWatcher(new DirectoryWatcherSettings
            {
                WatchFolders = new List <string> {
                    Settings.RootPath
                },
                FileExtensionWhitelist = ImageHelper.SupportedExtensions,
                MaxSize             = Settings.FileFilterSize,
                Recursive           = Settings.Recursive,
                DetectNewFiles      = false,
                DetectModifiedFiles = false
            });
            _directoryWatcher.CheckDirectoriesForNewFiles();
            NextImage();
            if (Settings.Recursive)
            {
                _directoryWatcher.CheckDirectoriesForNewFilesAsync();
            }

            _changeTimer.Start();
        }