C# 在Silverlight/WP7应用程序中使用多点触控行为时,如何以编程方式查找缩放、旋转和平移值?

C# 在Silverlight/WP7应用程序中使用多点触控行为时,如何以编程方式查找缩放、旋转和平移值?,c#,.net,silverlight,windows-phone-7,multi-touch,C#,.net,Silverlight,Windows Phone 7,Multi Touch,好吧,这似乎是一个非常愚蠢的问题,但我还不太习惯Silverlight领域。我正在开发一个Silverlight/WP7应用程序,该应用程序引用multi-touch.Behaviors.WP7 codeplex项目() 显然,用户可以通过多点触摸功能拖动图像、旋转图像和缩放图像。如何以编程方式访问图像缩放/旋转/转换的值?您需要使用image.RenderTransform。 请参阅此帖子(特别是GestureHelper部分-) 多点触控行为将a用作与其关联的对象的RenderTran

好吧,这似乎是一个非常愚蠢的问题,但我还不太习惯Silverlight领域。我正在开发一个Silverlight/WP7应用程序,该应用程序引用multi-touch.Behaviors.WP7 codeplex项目()



显然,用户可以通过多点触摸功能拖动图像、旋转图像和缩放图像。如何以编程方式访问图像缩放/旋转/转换的值?

您需要使用image.RenderTransform。 请参阅此帖子(特别是GestureHelper部分-)


多点触控行为将a用作与其关联的对象的RenderTransform。因此,您可以使用类似于以下的代码来访问转换后的值:

var transform = this.MyImage.RenderTransform as CompositeTransform;
var currentScaleX = transform.ScaleX;
var angle = transform.Rotation;
var offsetX = transform.TranslateX;

嘿,我如何在我的Windows8手机项目中使用手势库?如果我在我的windows 8 phone项目中添加手势库,那么它会给我错误信息LongListSelector也存在于Microsoft.phone.Controls中。对类LongListSelector的不明确引用有什么建议吗?
<Image x:Name="GesturedImage" Source="dividbyzero.jpg" 
       HorizontalAlignment="Center" VerticalAlignment="Center" 
       Width="450" RenderTransformOrigin="0.5,0.5">
    <Image.RenderTransform>
        <ScaleTransform x:Name="ImageScaling" ScaleX="1" ScaleY="1" />
    </Image.RenderTransform>
    <toolkit:GestureService.GestureListener>
        <toolkit:GestureListener PinchDelta="OnPinchDelta" />
  </toolkit:GestureService.GestureListener>
</Image>
private void OnPinchDelta(object sender, PinchGestureEventArgs e)
{
   ImageScaling.ScaleX = e.DistanceRatio;
   ImageScaling.ScaleY = e.DistanceRatio;
}
var transform = this.MyImage.RenderTransform as CompositeTransform;
var currentScaleX = transform.ScaleX;
var angle = transform.Rotation;
var offsetX = transform.TranslateX;