public void SetupPreview() { _webcamModel.PreviewClicked += SettingsWindow.ShowWebcamPage; IsVisibleChanged += (S, E) => SwitchWebcamPreview(); void OnRegionChange() { if (!IsVisible) { return; } _reactor.FrameSize.OnNext(new System.Windows.Size(PreviewGrid.ActualWidth, PreviewGrid.ActualHeight)); var rect = GetPreviewWindowRect(); _webcamModel.WebcamCapture?.UpdatePreview(null, rect); } PreviewTarget.LayoutUpdated += (S, E) => OnRegionChange(); _webcamModel .ObserveProperty(M => M.SelectedCam) .Where(M => _webcamModel.WebcamCapture != null) .Subscribe(M => SwitchWebcamPreview()); SwitchWebcamPreview(); }
public void SetupPreview() { _webcamModel.PreviewClicked += SettingsWindow.ShowWebcamPage; IsVisibleChanged += (S, E) => { if (IsVisible && _webcamCapture == null) { _webcamCapture = _webcamModel.InitCapture(); if (_webcamCapture.Value is { } capture) { _reactor.WebcamSize.OnNext(new WSize(capture.Width, capture.Height)); UpdateWebcamPreview(); } } else if (!IsVisible && _webcamCapture != null) { _webcamModel.ReleaseCapture(); _webcamCapture = null; } }; void OnRegionChange() { if (!IsVisible) { return; } _reactor.FrameSize.OnNext(new WSize(Img.ActualWidth, Img.ActualHeight)); } PreviewGrid.LayoutUpdated += (S, E) => OnRegionChange(); _webcamModel .ObserveProperty(M => M.SelectedCam) .Subscribe(M => UpdateWebcamPreview()); _reactor.Location .CombineLatest(_reactor.Size, (M, N) => { UpdateWebcamPreview(); return(0); }) .Subscribe(); UpdateWebcamPreview(); }
public void SetupPreview() { _webcamModel.PreviewClicked += SettingsWindow.ShowWebcamPage; IsVisibleChanged += (S, E) => { if (IsVisible && _webcamCapture == null) { _webcamCapture = _webcamModel.InitCapture(); SwitchWebcamPreview(); } else if (!IsVisible && _webcamCapture != null) { _webcamModel.ReleaseCapture(); _webcamCapture = null; } }; void OnRegionChange() { if (!IsVisible) { return; } _reactor.FrameSize.OnNext(new System.Windows.Size(PreviewGrid.ActualWidth, PreviewGrid.ActualHeight)); SwitchWebcamPreview(); } PreviewTarget.LayoutUpdated += (S, E) => OnRegionChange(); _webcamModel .ObserveProperty(M => M.SelectedCam) .Subscribe(M => SwitchWebcamPreview()); SwitchWebcamPreview(); }
public void SetupPreview() { // Open Preview Window //_webcamModel.PreviewClicked += this.ShowAndFocus; IsVisibleChanged += (S, E) => SwitchWebcamPreview(); void OnSizeChange() { var rect = GetPreviewWindowRect(); _webcamModel.WebcamCapture?.UpdatePreview(null, rect); } PreviewTarget.SizeChanged += (S, E) => OnSizeChange(); _webcamModel .ObserveProperty(M => M.SelectedCam) .Where(M => _webcamModel.WebcamCapture != null) .Subscribe(M => SwitchWebcamPreview()); SwitchWebcamPreview(); }