2014-03-19 80 views
0

我在画布上按一下按钮添加图像动态,并通过使用下面的代码转换这些图片:缩放和旋转动态创建的图像中的windows phone

private void Image_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
     { 
      Image m = new Image(); 
      m.Source = (sender as Image).Source; 
      m.Height = 110; m.Width = 110; 
      wid = Convert.ToInt16(canvas1.ActualWidth - m.Width); 
      hit = Convert.ToInt16(canvas1.ActualHeight - m.Height); 
      AddManipulableElement(m); 

     } 


     private void AddManipulableElement(UIElement element) 
     { 
      ManipulableContainer container = new ManipulableContainer(); 
      container.Content = element; 
      canvas1.Children.Add(container); 

     } 



    public class ManipulableContainer : ContentControl 
     { 
      private CompositeTransform _transform; 

      public ManipulableContainer() 
      { 
       this.Loaded += ManipulableContainer_Loaded; 
      } 

      private void ManipulableContainer_Loaded(object sender, EventArgs e) 
      { 
       _transform = new CompositeTransform(); 
       this.RenderTransform = _transform; 


    } 


      protected override void OnManipulationStarted(ManipulationStartedEventArgs e) 
      { 
       base.OnManipulationStarted(e); 
       e.Handled = true; 
      } 

      protected override void OnManipulationDelta(ManipulationDeltaEventArgs e) 
      { 
       base.OnManipulationDelta(e); 


       _transform.TranslateX += e.DeltaManipulation.Translation.X; 
       _transform.TranslateY += e.DeltaManipulation.Translation.Y; 
       if (_transform.TranslateX > wid) 
       { 
        _transform.TranslateX = wid; 
       } 
       if (_transform.TranslateY > hit) 
       { _transform.TranslateY = hit; } 
       if (_transform.TranslateY < 0) 
       { _transform.TranslateY = -_transform.TranslateY; } 

       if (_transform.TranslateX < 0) 
       { _transform.TranslateX = -_transform.TranslateX; } 



       e.Handled = true; 



      } 

      protected override void OnManipulationCompleted(ManipulationCompletedEventArgs e) 
      { 
       base.OnManipulationCompleted(e); 
       e.Handled = true; 
      } 
     } 

一切工作正常。现在我想添加放大/缩小功能,并通过手指将功能旋转到这些图像。

回答