在Silverlight/WP7应用程序中使用MultiTouchBehavior时,如何以编程方式查找缩放,旋转和转换值?

Nat*_*dek 2 .net c# silverlight multi-touch windows-phone-7

好吧,这看起来似乎是一个非常愚蠢的问题,但我还不习惯Silverlight领域.我正在开发一个引用Multitouch.Behaviors.WP7 codeplex项目(http://multitouch.codeplex.com/)的Silverlight/WP7应用程序.

<Canvas x:Name="MyCanvas">
      <Image Source="Images/image.png"
           x:Name="MyImage" Width="120" 
           Canvas.Left="240" Canvas.Top="235">
            <i:Interaction.Behaviors>
                <tb:MultiTouchBehavior
        AreFingersVisible="True" 
        IsDebugModeActive="True" 
        IsMockActive="True" 
        IsRotateEnabled="True" 
        IsScaleEnabled="True" 
        IsTranslateXEnabled="True" 
        IsTranslateYEnabled="True" 
        MaximumScale="100"  
        MinimumScale="0.5"/>
       </i:Interaction.Behaviors>
  </Image>
Run Code Online (Sandbox Code Playgroud)

显然,用户可以使用多点触控功能拖动图像,旋转图像并缩放图像.如何以编程方式访问图像的缩放/旋转/翻译方式?

Der*_*kin 5

MultitouchBehavior使用CompositeTransform作为与其关联的对象的RenderTransform.因此,您可以使用类似于以下内容的代码来访问转换后的值:

var transform = this.MyImage.RenderTransform as CompositeTransform;
var currentScaleX = transform.ScaleX;
var angle = transform.Rotation;
var offsetX = transform.TranslateX;
Run Code Online (Sandbox Code Playgroud)