Exemplo n.º 1
0
 private void ImageViewerPagingControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
 {
     if (this.DataContext is ImageViewerViewModel)
     {
         m_ViewModel = this.DataContext as ImageViewerViewModel;
     }
 }
 public ImageViewer(ImageViewerViewModel imageViewerViewModel)
 {
     InitializeComponent();
     this.ViewModel   = imageViewerViewModel;
     this.DataContext = m_ViewModel;
     InitSlider();
     //RenderOptions.SetBitmapScalingMode(this.displayedImage, BitmapScalingMode.Fant);
 }
        //move this whole thing up to another ViewMode called "ImageViewerMultiPageViewMode"
        public void SwitchToPage(int pageIndex)
        {
            if (pageIndex >= 0 && m_ImageViewerPages != null && m_ImageViewerPages.Count > 0 && m_ImageViewerPages.ContainsKey(pageIndex) && m_ImageViewerPages[pageIndex] != null)
            {
                if (m_ImageViewerViewModels.ContainsKey(pageIndex) && m_ImageViewerViewModels[pageIndex] != null)
                {
                    m_ImageViewerViewModel = m_ImageViewerViewModels[pageIndex];
                }
                else
                {
                    System.Windows.Media.Imaging.BitmapSource bitmapSource = UserControls.ImageResourceModerator.Instance.GetBitmapSource(m_FileName, pageIndex);

                    m_ImageViewerViewModel = new ImageViewerViewModel(bitmapSource, m_ImageViewerPages[pageIndex].Rotation, m_ImageViewerPages[pageIndex].Skew.X, m_ImageViewerPages[pageIndex].Skew.Y, m_ImageViewerPages[pageIndex].Shift, m_FileName, pageIndex);
                    m_ImageViewerViewModel.FirstPageIndex = m_FirstPageIndex;
                    m_ImageViewerViewModel.LastPageIndex  = m_LastPageIndex;

                    m_ImageViewerViewModel.DisableMaskAutoDrawRois();

                    m_ImageViewerViewModel.Rois.Clear();
                    m_ImageViewerPages[pageIndex].Rois.ToList().ForEach(x => m_ImageViewerViewModel.Rois.Add(x));
                    CopyFormat(m_ImageViewerPages[pageIndex].Rois, m_ImageViewerViewModel.Rois);

                    m_ImageViewerViewModel.RecognitionRois.Clear();
                    m_ImageViewerPages[pageIndex].RecognitionRois.ToList().ForEach(x => m_ImageViewerViewModel.RecognitionRois.Add(x));
                    CopyFormat(m_RecognitionRois, m_ImageViewerViewModel.RecognitionRois);

                    m_ImageViewerViewModel.GoldenRois.Clear();
                    m_ImageViewerPages[pageIndex].GoldenRois.ToList().ForEach(x => m_ImageViewerViewModel.GoldenRois.Add(x));
                    CopyFormat(m_GoldenRois, m_ImageViewerViewModel.GoldenRois);

                    m_ImageViewerViewModel.SelectedRois.Clear();
                    m_ImageViewerPages[pageIndex].SelectedRois.ToList().ForEach(x => m_ImageViewerViewModel.SelectedRois.Add(x));
                    CopyFormat(m_SelectedRois, m_ImageViewerViewModel.SelectedRois);

                    m_ImageViewerViewModel.SelectedRoisSubGroup1.Clear();
                    m_ImageViewerPages[pageIndex].SelectedRoisSubGroup1.ToList().ForEach(x => m_ImageViewerViewModel.SelectedRoisSubGroup1.Add(x));
                    CopyFormat(m_SelectedRoisSubGroup1, m_ImageViewerViewModel.SelectedRoisSubGroup1);

                    m_ImageViewerViewModel.SelectedRoisSubGroup2.Clear();
                    m_ImageViewerPages[pageIndex].SelectedRoisSubGroup2.ToList().ForEach(x => m_ImageViewerViewModel.SelectedRoisSubGroup2.Add(x));
                    CopyFormat(m_SelectedRoisSubGroup2, m_ImageViewerViewModel.SelectedRoisSubGroup2);

                    m_ImageViewerViewModel.EnableMaskAutoDrawRois();
                    m_ImageViewerViewModels.Add(pageIndex, m_ImageViewerViewModel); //for next time
                }

                UserControls.ImageResourceModerator.Instance.SignalToProcessFrames(m_FileName, pageIndex, m_ImageViewerViewModels[pageIndex].InstanceID);

                OnPropertyChanged("ImageViewerViewModel");
            }
        }
        private void ImageViewer_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (this.DataContext != null && this.DataContext != this.ViewModel)
            {
                if (this.DataContext is ImageViewerViewModel)
                {
                    this.ViewModel = this.DataContext as ImageViewerViewModel;
                    m_DataContextSwitchedToNewViewModel = true;
                    m_TopLeftized       = false;
                    m_CenteredFirstTime = false;

                    this.scrollViewer.LayoutUpdated += scrollViewer_LayoutUpdated;
                    this.scrollViewer.ScrollChanged += scrollViewer_ScrollChanged;
                }
            }
            if (this.DataContext == null)
            {
                this.ViewModel = null;
            }
        }