private void RefreshMainContent(PreviewMainDisplay mainDisplay, bool playingPreview)
        {
            // Close the video if we're swapping it out.
            var previewFrame = this.MainContent as IPreviewFrame;

            if (!playingPreview && previewFrame != null)
            {
                previewFrame.CloseVideo();
            }

            switch (mainDisplay)
            {
            case PreviewMainDisplay.None:
                this.previewArea.Children.Clear();
                break;

            case PreviewMainDisplay.Default:
                if (!(this.MainContent is PreviewFit))
                {
                    this.MainContent = new PreviewFit();
                }

                break;

            case PreviewMainDisplay.FitToWindow:
                if (!(this.MainContent is PreviewFit))
                {
                    this.MainContent = new PreviewFit();
                }

                break;

            case PreviewMainDisplay.OneToOne:
                if (!(this.MainContent is PreviewOneToOne))
                {
                    this.MainContent = new PreviewOneToOne();
                }

                break;

            case PreviewMainDisplay.StillCorners:
                if (!(this.MainContent is PreviewCorners))
                {
                    this.MainContent = new PreviewCorners();
                }

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            previewFrame = this.MainContent as IPreviewFrame;
            if (previewFrame != null)
            {
                if (playingPreview)
                {
                    previewFrame.SetVideo(this.viewModel.OnVideoCompleted, this.viewModel.OnVideoFailed, this.viewModel.WhenAnyValue(x => x.Volume));
                }
                else
                {
                    previewFrame.SetImage();
                }
            }
        }
 private void OnMainDisplayUpdate(PreviewMainDisplay mainDisplay, bool playingPreview)
 {
     this.RefreshMainContent(mainDisplay, playingPreview);
     this.RefreshImageSize();
 }