2016-06-21 9 views
0

私は持っています&キャンバスに画像をドロップし、ピンチズームの助けを借りてタッチでタブ上の画像をズームすることができます。しかし、私はマウスの助けを借りてデスクトップ上で同じことをしたい。出来ますか。私はUWPプログラミングでは新しいので、私を助けてください。Zoom_In&Zoom_Out UWPのマウスの助けを借りたキャンバス上の画像

      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; 

答えて

0

はい、その可能

画像にDoubletappedイベントを追加します。 PointerWheelChanged eventため

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; 

        }   
    } 

登録すると、あなたはそれがこの私のイメージと私の半分の問題を解決します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; 


      } 
     } 
+0

拝啓を変更することができますが、ズームアウトであるが、ズーム・インしていません。 –

+0

マウスのスクロールが可能ですか?ズームアウトとズームインが可能です。 –

+0

はい。私は答えを更新します – Archana

関連する問題