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 に答える