private void TargetPanel_Drop(object sender, DragEventArgs e) { var dataObj = e.Data as DataObject; ImageEntity dragged = dataObj.GetData(typeof(ImageEntity)) as ImageEntity; CameraContainer selectedCam = cams.Where(c => c.Name == dragged.CameraName).SingleOrDefault(); selectedCam.bActive = true; LayoutPanel droppedOn = e.Source as LayoutPanel; panels.Clear(); FindPanels(((LayoutGroup)Groups) as DependencyObject); for (int y = 0; y < panels.Count; y++) { if (panels[y].Caption == droppedOn.Caption) { addViews(panels[y], selectedCam); //panels[y + 1].Visibility = Visibility.Visible; //panels[y + 1].Content = selectedCam.hist; //panels[y + 1].Name = "hist" + selectedCam.Name; } } // droppedOn.Content = selectedCam.preview; SetTrayImageToinUse(dragged); }
public CameraContainer(int cameraNum, ImageEntity Tray, ListBox gallery) { preview = new Preview(this); camNum = cameraNum; hist = new Histogram(); settings = new settingsContainer(this); LsImageGallery = gallery; trayImage = Tray; ReturnCode rc = Api.Initialize(serialNums[cameraNum], ref m_hCamera); if (cameraNum == 0) { bActive = true; } CameraInformation info = new CameraInformation(); rc = Api.GetCameraInformation(m_hCamera, ref info); this.Name = Tray.CameraName = "a" + info.SerialNumber; LoadCameraFeatures(); s_callbackDelegate[cameraNum] = new Api.Callback(MyCallbackFunction); Api.SetCallback(m_hCamera, Overlays.Frame, 0xD00D, s_callbackDelegate[cameraNum]); Api.SetStreamState(m_hCamera, StreamState.Start); }
void SetTrayImageToinUse(ImageEntity item) { CameraContainer selected = cams.Where(c => c.Name == item.CameraName).SingleOrDefault(); selected.bActive = true; //show the tray image as camera in preview mode selected.trayImage.ImagePath = File.ReadAllBytes("preview.png"); }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { //nCams = GetNumberCams(); ((App)Application.Current).logger.MyLogFile("app start", ""); // < dxdo:LayoutGroup Orientation = "Horizontal" > docMan.DockItemClosed += DocMan_DockItemClosed; nAttachedCams = getNumberAttachedCams(); if (nAttachedCams == 0) { MessageBox.Show("no cameras"); return; } LsImageGallery.ItemsSource = ListImageObj; if (nAttachedCams > 0) { CreateSingleView(); } //make the first camera active so that it shows in preview and histogram // cams.First().bActive = true; //if there are more than 2 cameras place the 2 .. N in tray as the first is in the primary view for (int k = 0; k < nAttachedCams; k++) { ImageEntity ent = new ImageEntity(); ent.ImagePath = File.ReadAllBytes("preview.png"); ListImageObj.Add(ent); } SetupAttachedCams(ListImageObj); PopulateView(); // layoutGroup2.Add(layoutPanel4); //_timer = new System.Timers.Timer(70); //_timer.Elapsed += new ElapsedEventHandler(FakeCamera1); //_timer.Enabled = true; // Enable it // Store Data in List Object // camtray.ItemsSource = listAvailable; // ReturnCode rc = Api.Initialize(0, ref m_hCamera); //if (rc == ReturnCode.NoCameraError) //{ // MessageBoxResult result = MessageBox.Show(" Do you want to close this window?", "NO CAMERA", MessageBoxButton.YesNo, MessageBoxImage.Question); // if (result == MessageBoxResult.Yes) // { // Application.Current.Shutdown(); // } //} }
//implement the drag of a tray image and it will be dropped onto an open window private void Image_MouseMove(object sender, MouseEventArgs e) { Image image = (sender as Image); ImageEntity item = (ImageEntity)(sender as Image).DataContext; var dragData = new DataObject(typeof(ImageEntity), item); if (image != null && e.LeftButton == MouseButtonState.Pressed) { DragDrop.DoDragDrop(image, dragData, DragDropEffects.Copy); } }
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (e.ChangedButton == MouseButton.Left && e.ClickCount == 2) { Image img = e.OriginalSource as Image; ImageEntity item = img.DataContext as ImageEntity; if (item == null) { MessageBox.Show("bad"); return; } /*single * cams.ForEach(c => c.bActive = false); * CameraContainer selected = cams.Where(c => c.Name == item.CameraName).SingleOrDefault(); * selected.bActive = true; * panels.Clear(); * WalkDownLogicalTree(((LayoutGroup)Groups) as DependencyObject); * panels[0].Content = selected.preview; * panels[1].Content = selected.hist; */ SetTrayImageToinUse(item); List <CameraContainer> activecams = cams.Where(c => c.bActive == true).ToList(); if (activecams.Count == 2) { Create2View(Orientation.Horizontal, false); } if (activecams.Count == 3) { Create12CamView(); } if (activecams.Count == 4) { Create4CamView(); } PopulateView(); } }