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


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

最佳答案

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

在混合,变换(平移,拉伸,旋转)的情况下,应使用BitmapCaching。

检查此link以获得解释和精彩视频。

关于c# - 如何获得更流畅的翻译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15968531/

10-10 18:40