protected void zoomAndPanControl_MouseWheel(object sender, MouseWheelEventArgs e) { e.Handled = true; Point curContentMousePoint = e.GetPosition(content); if (e.Delta > 0) { ZoomIn(curContentMousePoint); } else if (e.Delta < 0) { // don't allow zoomout les that original image if (ZoomAndPanControl.ContentScale - 0.1 > ZoomAndPanControl.FitScale()) { ZoomAndPanControl.ZoomOut(curContentMousePoint); } else { ZoomAndPanControl.ScaleToFit(); } ZoomOut(curContentMousePoint); } if (ZoomAndPanControl.ContentScale > ZoomAndPanControl.FitScale()) { LoadFullRes(); LayoutViewModel.FreeZoom = true; } }
public virtual void OnImageLoaded() { if (LayoutViewModel.ZoomFit && ZoomAndPanControl != null) { ZoomAndPanControl.ScaleToFit(); } else { if (ZoomAndPanControl != null) { ZoomToFocus(); } } GeneratePreview(); }
public virtual void OnImageLoaded() { if (LayoutViewModel.ZoomIndex == 0 && ZoomAndPanControl != null) { ZoomAndPanControl.ScaleToFit(); } else { if (ZoomAndPanControl != null) { ZoomToFocus(); } } GeneratePreview(); LayoutViewModel.DoZoom(); ServiceProvider.Settings.SelectedBitmap.Notify(); }
private void TriggerEvent(string cmd, object o) { try { switch (cmd) { case WindowsCmdConsts.Next_Image: if (ImageLIst.SelectedIndex < ImageLIst.Items.Count - 1) { FileItem item = ImageLIst.SelectedItem as FileItem; if (item != null) { int ind = ImageLIst.Items.IndexOf(item); ImageLIst.SelectedIndex = ind + 1; } item = ImageLIst.SelectedItem as FileItem; if (item != null) { ImageLIst.ScrollIntoView(item); } } break; case WindowsCmdConsts.Prev_Image: if (ImageLIst.SelectedIndex > 0) { FileItem item = ImageLIst.SelectedItem as FileItem; if (item != null) { int ind = ImageLIst.Items.IndexOf(item); ImageLIst.SelectedIndex = ind - 1; } item = ImageLIst.SelectedItem as FileItem; if (item != null) { ImageLIst.ScrollIntoView(item); } } break; case WindowsCmdConsts.Like_Image: if (ImageLIst.SelectedItem != null) { FileItem item = null; if (o != null) { item = ServiceProvider.Settings.DefaultSession.GetByName(o as string); } else { item = ImageLIst.SelectedItem as FileItem; } if (item != null) { item.IsLiked = !item.IsLiked; } } break; case WindowsCmdConsts.Unlike_Image: if (ImageLIst.SelectedItem != null) { FileItem item = null; if (o != null) { item = ServiceProvider.Settings.DefaultSession .GetByName(o as string); } else { item = ImageLIst.SelectedItem as FileItem; } if (item != null) { item.IsUnLiked = !item.IsUnLiked; } } break; case WindowsCmdConsts.Del_Image: { DeleteItem(); } break; case WindowsCmdConsts.SelectAll_Image: { ServiceProvider.Settings.DefaultSession.SelectAll(); } break; case WindowsCmdConsts.Select_Image: FileItem fileItem = o as FileItem; if (fileItem != null) { ImageLIst.SelectedValue = fileItem; ImageLIst.ScrollIntoView(fileItem); } break; case WindowsCmdConsts.Refresh_Image: RefreshImage(); break; case WindowsCmdConsts.Zoom_Image_Fit: ZoomAndPanControl.ScaleToFit(); break; case WindowsCmdConsts.Zoom_Image_60: ZoomToFocus(); LoadFullRes(); ZoomAndPanControl.ZoomTo(0.6); break; case WindowsCmdConsts.Zoom_Image_100: ZoomToFocus(); LoadFullRes(); ZoomAndPanControl.ZoomTo(1.0); break; case WindowsCmdConsts.Zoom_Image_200: ZoomToFocus(); LoadFullRes(); ZoomAndPanControl.ZoomTo(2.0); break; case WindowsCmdConsts.RotateLeft: { FileItem item = ImageLIst.SelectedItem as FileItem; if (item != null) { item.Rotation--; } } break; case WindowsCmdConsts.RotateRight: { FileItem item = ImageLIst.SelectedItem as FileItem; if (item != null) { item.Rotation++; } } break; case WindowsCmdConsts.ViewExternal: OpenInExternalViewer(); break; case WindowsCmdConsts.ViewExplorer: OpenInExplorer(); break; case WindowsCmdConsts.RefreshDisplay: if (LayoutViewModel.ZoomIndex == 0) { ZoomAndPanControl.ScaleToFit(); } break; } if (cmd.StartsWith(WindowsCmdConsts.ZoomPoint)) { if (ZoomAndPanControl != null && cmd.Contains("_")) { var vals = cmd.Split('_'); if (vals.Count() > 2) { double x; double y; double.TryParse(vals[1], out x); double.TryParse(vals[2], out y); //if (cmd.EndsWith("!")) // // ZoomAndPanControl.SnapToRation(x, y); //else //{ // // ZoomAndPanControl.AnimatedSnapToRation(x, y); //} } } } } catch (Exception exception) { Log.Error("Unable to process event ", exception); } }
private void worker_DoWork(object sender, DoWorkEventArgs e) { var item = ServiceProvider.Settings.SelectedBitmap.FileItem; bool fullres = e.Argument is bool && (bool)e.Argument; ServiceProvider.Settings.SelectedBitmap.DisplayImage = BitmapLoader.Instance.LoadImage(ServiceProvider.Settings.SelectedBitmap.FileItem, fullres); ServiceProvider.Settings.SelectedBitmap.Notify(); ServiceProvider.Settings.ImageLoading = false; GC.Collect(); ZoomAndPanControl.ScaleToFit(); //if (ServiceProvider.Settings.SelectedBitmap.FileItem == null) // return; ////bool fullres = e.Argument is bool && (bool) e.Argument ||LayoutViewModel.ZoomFit ////bool fullres = !LayoutViewModel.ZoomFit; //bool fullres = e.Argument is bool && (bool)e.Argument; //if ((!File.Exists(item.LargeThumb) && item.IsJpg && File.Exists(item.FileName))) //{ // try // { // PhotoUtils.WaitForFile(item.FileName); // //ServiceProvider.Settings.SelectedBitmap.DisplayImage = (WriteableBitmap)BitmapLoader.Instance.LoadImage(item.FileName, BitmapLoader.LargeThumbSize,0); // } // catch (Exception ex) // { // Log.Error("Unable to load fast preview", ex); // } //} //ServiceProvider.Settings.ImageLoading = fullres || !ServiceProvider.Settings.SelectedBitmap.FileItem.IsLoaded; //if (ServiceProvider.Settings.SelectedBitmap.FileItem.Loading) //{ // while (ServiceProvider.Settings.SelectedBitmap.FileItem.Loading) // { // Thread.Sleep(10); // } //} //else //{ // BitmapLoader.Instance.GenerateCache(ServiceProvider.Settings.SelectedBitmap.FileItem); //} //if (!ServiceProvider.Settings.SelectedBitmap.FileItem.HaveHistogramReady()) // ServiceProvider.QueueManager.Add(new QueueItemFileItem // { // FileItem = ServiceProvider.Settings.SelectedBitmap.FileItem, // Generate = QueueType.Histogram // }); //ServiceProvider.Settings.SelectedBitmap.DisplayImage = BitmapLoader.Instance.LoadImage(ServiceProvider.Settings.SelectedBitmap.FileItem, fullres); //ServiceProvider.Settings.SelectedBitmap.Notify(); //BitmapLoader.Instance.SetData(ServiceProvider.Settings.SelectedBitmap, // ServiceProvider.Settings.SelectedBitmap.FileItem); ////Calling Capture Level Graph ////PathUpdate.getInstance().CaptureLevelGraphVM.ImagePath = item.FileName; //BitmapLoader.Highlight(ServiceProvider.Settings.SelectedBitmap, // ServiceProvider.Settings.HighlightUnderExp, // ServiceProvider.Settings.HighlightOverExp); //ServiceProvider.Settings.SelectedBitmap.FullResLoaded = fullres; //ServiceProvider.Settings.ImageLoading = false; //GC.Collect(); //Dispatcher.BeginInvoke(new Action(OnImageLoaded)); }