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);
        }

任何人都知道为什么当我移动它时它会闪烁并且移动得很差?

4

1 回答 1

1

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

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

检查此链接以获取解释和精彩视频。

于 2013-04-12T15:07:21.693 回答