public RegionSelectorProvider(RegionSelectorViewModel ViewModel,
                                      IPlatformServices PlatformServices)
        {
            _viewModel = ViewModel;

            _regionSelector = new Lazy <RegionSelector>(() => new RegionSelector(ViewModel));

            _regionItem = new RegionItem(this, PlatformServices);
        }
        public RegionSelectorProvider(IVideoSourcePicker videoSourcePicker, RegionSelectorViewModel viewModel)
        {
            _viewModel = viewModel;

            _regionSelector = new Lazy <RegionSelector>(() =>
            {
                var reg = new RegionSelector(videoSourcePicker, viewModel);

                reg.SelectorHidden += () => SelectorHidden?.Invoke();

                return(reg);
            });

            _regionItem = new RegionItem(this);
        }
        public MainWindow()
        {
            InitializeComponent();

            this.scannerRegistry = new ScannerRegistry();

            this.scannerRegistryViewModel = new ScannerRegistryViewModel();
            this.scannerRegistryViewModel.Load(this.scannerRegistry);

            this.regionSelectorViewModel = new RegionSelectorViewModel();
            this.regionSelectorViewModel.Load();

            this.captureModeSelectorViewModel = new CaptureModeSelectorViewModel();
            this.captureModeSelectorViewModel.Load();

            this.numberFormatSelectorViewModel = new NumberFormatSelectorViewModel();
            this.numberFormatSelectorViewModel.Load();

            this.resultsPanelViewModel = new ResultsPanelViewModel();
            this.resultsPanelViewModel.Load(this.scannerRegistry, this.numberFormatSelectorViewModel);
        }
        public RegionSelector(IVideoSourcePicker videoSourcePicker, RegionSelectorViewModel viewModel)
        {
            _videoSourcePicker = videoSourcePicker;
            _viewModel         = viewModel;

            InitializeComponent();

            // Prevent Closing by User
            Closing += (sender, e) => e.Cancel = true;

            ModesBox.ItemsSource = new[]
            {
                new KeyValuePair <InkCanvasEditingMode, string>(InkCanvasEditingMode.None, "Pointer"),
                new KeyValuePair <InkCanvasEditingMode, string>(InkCanvasEditingMode.Ink, "Pencil"),
                new KeyValuePair <InkCanvasEditingMode, string>(InkCanvasEditingMode.EraseByPoint, "Eraser"),
                new KeyValuePair <InkCanvasEditingMode, string>(InkCanvasEditingMode.EraseByStroke, "Stroke Eraser")
            };

            ModesBox.SelectedIndex    = 0;
            ColorPicker.SelectedColor = Color.FromRgb(27, 27, 27);
            SizeBox.Value             = 10;

            InkCanvas.DefaultDrawingAttributes.FitToCurve = true;
        }