Пример #1
0
        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;
            }
        }
Пример #2
0
 public virtual void OnImageLoaded()
 {
     if (LayoutViewModel.ZoomFit && ZoomAndPanControl != null)
     {
         ZoomAndPanControl.ScaleToFit();
     }
     else
     {
         if (ZoomAndPanControl != null)
         {
             ZoomToFocus();
         }
     }
     GeneratePreview();
 }
Пример #3
0
 public virtual void OnImageLoaded()
 {
     if (LayoutViewModel.ZoomIndex == 0 && ZoomAndPanControl != null)
     {
         ZoomAndPanControl.ScaleToFit();
     }
     else
     {
         if (ZoomAndPanControl != null)
         {
             ZoomToFocus();
         }
     }
     GeneratePreview();
     LayoutViewModel.DoZoom();
     ServiceProvider.Settings.SelectedBitmap.Notify();
 }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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));
        }