WPF画布渲染

时间:2014-03-04 20:47:27

标签: c# wpf

我有这个画布和一些物体(图像,路径)我想要每毫秒移动1px到左边。在我这样做之后,我注意到了很多滞后。如何提高渲染性能?

    <Grid>    
        <Canvas Grid.Row="0">
            <Image x:Name="Cover" Source="happy_footer.png" Stretch="Uniform" Canvas.Bottom="0" Canvas.Left="0" Width="2500"/>
            <Image x:Name="rocketMan" Source="rocketman.gif" Stretch="Uniform" HorizontalAlignment="Left" Height="100" Margin="50,300,0,0" VerticalAlignment="Top" Width="100"/>
            <Path x:Name="rocketManPath" Stroke="Green" Fill="#4CFF0000" Data="M 5,400 L 15,305 L 80,295 L 50,400 Z" Canvas.Left="40" />
            <Path x:Name="Building1" Stroke="Green" Fill="#4CFF0000" Data="M 365,518 L 365,425 L 655,425 L 655,518 Z" />
            <Path x:Name="Building2" Stroke="Green" Fill="#4CFF0000" Data="M 735,528 L 735,248 L 778,218 L 925,218 L 925,528 Z" />
        </Canvas>
    </Grid>

编辑:我的图片已生成,因此每隔几毫秒,我会在最后添加另一个形状。我永远不会停止。

1 个答案:

答案 0 :(得分:0)

如果您知道Canvas应停止的位置,可以尝试DoubleAnimation MSDN

如果你不知道你必须停在哪里,你仍然可以使用它并且每隔几百毫秒启动一次动画并重新开始和停止