Пример #1
0
        public MainViewModel(IThumbnailService thumbnailService, IShareService shareService, IDialogService dialogService)
        {
            _thumbnailService                  = thumbnailService;
            _shareService                      = shareService;
            _dialogService                     = dialogService;
            SelectedItem                       = Thumbnails.FirstOrDefault();
            IsChromeOn                         = true;
            _zoomFactor                        = 1;
            _slideShowDispatcherTimer          = new DispatcherTimer();
            _slideShowDispatcherTimer.Interval = new TimeSpan(0, 0, 3);
            _slideShowDispatcherTimer.Tick    += OnSlideShowTimerTick;

            DeleteCommnad      = new DelegateCommand(async() => await _dialogService.ShowDialogAsync("Not implemented yet!"));
            LoadContentCommnad = new DelegateCommand(() => _thumbnailService.SelectFolder());
            ShareCommnad       = new DelegateCommand(() => _shareService.ShareContent(SelectedItem?.Title, "Share an Image from Photos", ((IViewerItem)SelectedItem).Source));

            FullscreenCommnad = new DelegateCommand(() =>
            {
                ToggleFullScreenMode();
                OnPropertyChanged(() => IsFullScreen);
            });

            FileInfoCommnad = new DelegateCommand(() =>
            {
                IsFileInfoOpen = !IsFileInfoOpen;
            });

            RotateCommnad = new DelegateCommand(() =>
            {
                if (SelectedItem == null)
                {
                    return;
                }

                SelectedItem.Angle = SelectedItem.Angle + 90;
            });

            StartSlideShowCommnad = new DelegateCommand(() =>
            {
                IsSlideShowRunning          = true;
                _currentSlideShowImageIndex = 0;
                ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
                CurrentSlideShowImage = Thumbnails.FirstOrDefault()?.ImageSource;
                Window.Current.CoreWindow.PointerCursor = null;
                _slideShowDispatcherTimer.Start();
            });

            Window.Current.CoreWindow.KeyDown += (sender, arg) =>
            {
                if (arg.VirtualKey == Windows.System.VirtualKey.Escape && IsSlideShowRunning)
                {
                    IsSlideShowRunning = false;
                    _slideShowDispatcherTimer.Stop();
                    var view = ApplicationView.GetForCurrentView();
                    if (view.IsFullScreenMode)
                    {
                        view.ExitFullScreenMode();
                        Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Arrow, 0);
                    }
                }
            };
        }