C# 在windows phone中放大/缩小和旋转动态创建的图像

C# 在windows phone中放大/缩小和旋转动态创建的图像,c#,windows-phone-8,C#,Windows Phone 8,我在单击按钮时在画布中动态添加图像,并使用以下代码翻译这些图像: 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

我在单击按钮时在画布中动态添加图像,并使用以下代码翻译这些图像:

  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;
            }
        }
private void Image\u点击(对象发送方,System.Windows.Input.GestureEventArgs e)
{
图像m=新图像();
m、 Source=(发送方作为图像)。Source;
m、 高度=110;米宽=110;
wid=转换为16(canvas1.ActualWidth-m.Width);
hit=转换为16(画布1.实际高度-米高度);
添加可操作元素(m);
}
私有void AddManipulableElement(UIElement)
{
ManipulableContainer=新的ManipulableContainer();
container.Content=元素;
画布1.儿童。添加(容器);
}
公共类ManipulableContainer:ContentControl
{
私有复合变换;
公共可操作容器()
{
此.Loaded+=可操作容器_Loaded;
}
已加载私有void ManipulableContainer_(对象发送方,事件参数e)
{
_transform=新的CompositeTransform();
this.RenderTransform=\u transform;
}
操作启动时受保护的覆盖无效(操作启动目标e)
{
基本操作已启动(e);
e、 已处理=正确;
}
操作Delta上的受保护覆盖无效(操作DeltaEventArgs e)
{
基于操作delta(e);
_transform.TranslateX+=e.DeltaManipulation.Translation.X;
_transform.TranslateY+=e.DeltaManipulation.Translation.Y;
如果(_transform.TranslateX>wid)
{
_transform.TranslateX=wid;
}
如果(_transform.TranslateY>hit)
{u transform.TranslateY=hit;}
if(_transform.TranslateY<0)
{{u transform.TranslateY=--u transform.TranslateY;}
if(_transform.TranslateX<0)
{{u transform.TranslateX=--u transform.TranslateX;}
e、 已处理=正确;
}
操作完成时受保护的覆盖无效(操作完成事件参数e)
{
基本操作已完成(e);
e、 已处理=正确;
}
}

一切正常。现在我想使用手指为这些图像添加放大/缩小和旋转功能

您可以将此库用于多种功能:

无论如何,您可以使用此帖子作为参考: