c#捏操作中心的变化

本文关键字:变化 操作 | 更新日期: 2023-09-27 18:10:43

我正在尝试使用翻译和捏操作,两者都很好。唯一的问题是,使用后捏操作中心的变化和平移操作不像预期的那样工作。我的代码:

void r_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
{
     Rectangle r = (sender) as Rectangle;
     ((CompositeTransform)r.RenderTransform).TranslateX += e.DeltaManipulation.Translation.X;
     ((CompositeTransform)r.RenderTransform).TranslateY += e.DeltaManipulation.Translation.Y;

     if (e.PinchManipulation != null)
     {
          ((CompositeTransform)r.RenderTransform).ScaleX *= e.DeltaManipulation.Scale.X;
          ((CompositeTransform)r.RenderTransform).ScaleY *= e.DeltaManipulation.Scale.X;
     }
 }

我该怎么办?

c#捏操作中心的变化

请看这里的评论:https://msdn.microsoft.com/en-us/library/system.windows.media.compositetransform(v=vs.95).aspx

变换是按比例,倾斜,旋转&然后翻译。

如果需要,您应该在任何转换之前设置中心属性。

如果你需要一个特定的不同的顺序,那么TransformGroup应该使用&此外,如果中心点应该为每个转换不同