在 xaml 中,我将 Canvas 定义为:
<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 应用于混合、变换(平移、拉伸(stretch)、旋转)的场景。
检查这个link以获得解释和精彩视频。
关于c# - 如何获得更流畅的翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15968531/