Zoom_In & Zoom_Out Gambar di atas kanvas dengan bantuan mouse di Aplikasi UWP

Saya telah menggunakan kode berikut untuk menarik & melepas gambar di atas kanvas dan dengan bantuan pinch zoom saya dapat memperbesar gambar saya di tab dengan sentuhan. tapi saya ingin melakukan hal yang sama di desktop dengan bantuan mouse. Apa itu mungkin. Saya baru dalam pemrograman UWP jadi tolong bantu saya.

                         void Drag_ManipulationDelta1(object sender, ManipulationDeltaRoutedEventArgs e)
    {
        // Move the rectangle.
        //dragTranslation.X += e.Delta.Translation.X;
        //dragTranslation.Y += e.Delta.Translation.Y;
        TextBlock text = sender as TextBlock;
        CompositeTransform ct1 = text.RenderTransform as CompositeTransform;
        ct1.ScaleX *= e.Delta.Scale;
        ct1.ScaleY *= e.Delta.Scale;

        if (ct1.ScaleX < 1.0) ct1.ScaleX = 1.0;
        if (ct1.ScaleY < 1.0) ct1.ScaleY = 1.0;
        if (ct1.ScaleX > 4.0) ct1.ScaleX = 4.0;
        if (ct1.ScaleY > 4.0) ct1.ScaleY = 4.0;
        //Checking with canvas boundary so that image wont go behind canvas
        if ((ct1.TranslateX + e.Delta.Translation.X) <= (my_canvas.ActualWidth - text.ActualWidth) && ct1.TranslateX + e.Delta.Translation.X >= 0)
            ct1.TranslateX += e.Delta.Translation.X;
        if ((ct1.TranslateY + e.Delta.Translation.Y) <= (my_canvas.ActualHeight - text.ActualHeight) && ct1.TranslateY + e.Delta.Translation.Y >= 0)
            ct1.TranslateY += e.Delta.Translation.Y;
        if ((ct1.TranslateX + e.Delta.Translation.X) <= (my_canvas.ActualWidth - text.MinWidth) && ct1.TranslateX + e.Delta.Translation.X >= 1150)
            ct1.TranslateX -= e.Delta.Translation.X;
        if ((ct1.TranslateY + e.Delta.Translation.Y) <= (my_canvas.ActualHeight - text.MinHeight) && ct1.TranslateY + e.Delta.Translation.Y >= 500)
            ct1.TranslateY -= e.Delta.Translation.Y;

    } 


              // DRag and drop the images on canvas
                imageitem.ManipulationMode = ManipulationModes.All;
                imageitem.ManipulationDelta += Drag_ManipulationDelta;
                CompositeTransform ct = new CompositeTransform();
                imageitem.RenderTransform = ct;

person vikas sharawat    schedule 21.06.2016    source sumber


Jawaban (1)


Iya itu mungkin

Tambahkan Doubletapped acara ke gambar;

   bool isZoomed = false;
        private void image_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
                {
                    Image img = sender as Image;
                    CompositeTransform ct = img.RenderTransform as CompositeTransform;
                    if (!isZoomed)
                    {

                        ct.ScaleX = 4.0;
                        ct.ScaleY = 4.0;
                        isZoomed = true;
                    }
                    else
                    {
                        ct.ScaleX = 1.0;
                        ct.ScaleY =1.0;
                        isZoomed = false;

                    }           
   }

Daftarkan PointerWheelChanged event dan Anda dapat mengubah nilai scaleTHreshold

double scalevalue = 0.0;
        double scaleTHreshold = 4.0;
        private void image_PointerWheelChanged(object sender, PointerRoutedEventArgs e)
        {
            Image img = sender as Image;
            CompositeTransform ct = img.RenderTransform as CompositeTransform;
            if (!isZoomed && scalevalue<=scaleTHreshold)
            {

                ct.ScaleX = ++scalevalue;
                ct.ScaleY = scalevalue;
                if(scalevalue==scaleTHreshold)
                isZoomed = true;
            }
            else 
            {
                if (--scalevalue == 0.0)
                {
                    isZoomed = false;
                    return;
                }
                ct.ScaleX = scalevalue;
                ct.ScaleY = scalevalue;


            }
        }
person Archana    schedule 21.06.2016
comment
tuan yang terhormat, ini akan menyelesaikan setengah masalah saya dengan ini gambar saya diperkecil tetapi tidak diperbesar. - person vikas sharawat; 21.06.2016
comment
Apakah mungkin dengan menggulir mouse saya dapat memperkecil dan memperbesar gambar - person vikas sharawat; 21.06.2016