2013-04-12 24 views
2

在XAML我已经定义我的画布:我如何获得更流畅的翻译?

 <Canvas Name="GameCanvas"> 

      <Canvas.RenderTransform> 
       <CompositeTransform x:Name="CanvasRenderTransform" /> 
      </Canvas.RenderTransform> 

在C#中我已经定义在哪里存储初始规模,并修改它,因为它被夹住如下:

private void GestureListener_DragDelta(object sender, DragDeltaGestureEventArgs e) 
     { 
      Point p = e.GetPosition(GameCanvas); 

      CanvasRenderTransform.TranslateX = p.X - originDragPoint.X; 
      CanvasRenderTransform.TranslateY = p.Y - originDragPoint.Y; 
     } 

     private void GestureListener_DragStarted(object sender, DragStartedGestureEventArgs e) 
     { 
      originDragPoint = e.GetPosition(GameCanvas); 
     } 

任何人都得到一个线索为什么当我移动它时闪烁并且移动很差?

回答

1

这里的解决方案是使用DP CacheMode。这允许视觉元素在第一次渲染之后作为位图存储。我们将会更好地利用GPU。

BitmapCaching应该用于混合,转换(平移,拉伸,旋转)的场景中。

检查此link一个解释和一个真棒视频。