在xaml中,我将画布定义为:
<Canvas Name="GameCanvas">
<Canvas.RenderTransform>
<CompositeTransform x:Name="CanvasRenderTransform" />
</Canvas.RenderTransform>
在c#中,我定义了以下内容:i存储初始比例并在收缩时对其进行修改:
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);
}
任何人都知道为什么当我移动它并且移动得非常差时它会闪烁?
答案 0 :(得分:1)
这里的解决方案是使用DP CacheMode。这允许在第一次渲染过程之后将可视元素存储为位图。我们将更好地利用GPU。
BitmapCaching应该用于混合,转换(平移,拉伸,旋转)的场景。
检查此link以获取解释和精彩视频。