寻找通过触摸WinRT xaml圆形按钮旋转的示例代码或像立体声收音机按钮的图像

时间:2012-11-14 12:55:08

标签: c# xaml rotation touch windows-runtime

我正在寻找通过触摸或鼠标WinRT xaml圆形按钮旋转的示例代码或像立体声收音机按钮的图像。想法是能够触摸控件以无限的方式向左旋转。增量值用于增加或减少另一个对象的值。旋转角度并不重要。只需将控件向右或向左转动即可。

任何有关实现这一目标的好方法的提示都会受到赞赏吗?

这里的部分代码:

private RotateTransform rotateTransform;

void ManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
   e.Handled = true;

   var image = sender as Image;
   var container = image.Parent as UIElement;

   var localCenter = new Point(image.ActualWidth / 2, image.ActualHeight / 2);
   var pivot = new ManipulationPivot(localCenter, 20);
   e.Pivot = pivot;

    rotateTransform.CenterX = image.ActualWidth / 2;
    rotateTransform.CenterY = image.ActualHeight / 2;

    e.Container = container;
 }


 void ImageManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
 {
      e.Handled = true;

      var image = sender as Image;

      double newAngle;
      var valueDrawline = 1;
      if (e.Delta.Rotation < 0)
      {
          valueDrawline = -1;
          newAngle = rotateTransform.Angle - (1 + e.Delta.Rotation);
      }
      else
      {
          valueDrawline = 1;
          newAngle = rotateTransform.Angle + (1 + e.Delta.Rotation);
      }

      rotateTransform.Angle = newAngle;
      image.RenderTransform = rotateTransform;
  }

“真正的”问题来自不恒定的方向。例如:当我用鼠标或手指从左到右转动控件时,该值应该增加+1。这对于当前代码不能很好地处理,因为即使我仍然朝着方向转动,值大多增加+1但也增加-1。 更清楚的是,让我们想象一下,我想用我的控制画出一条水平线。我需要将其向右转,向右绘制,反向绘制向左。使用这段代码,它会朝着正确的方向前进,但沿着这条线的路径返回很多步骤......

提前Txs

0 个答案:

没有答案