2013-04-12 64 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一個解釋和一個真棒視頻。