4

如果我在一页上有 2 行

我将如何为第一行设置动画以到达第二行的位置?

4

2 回答 2

2

添加一个“计数器”变量,该变量将是线在两个位置之间经过的距离的百分比。将其初始化为零,因为它从开始位置开始。添加一个计时器,每次它滴答作响时,您都会增加“计数器”并使客户区无效,以便发生重绘。一旦“计数器”达到 100 并且它 100% 到达目标,您将禁用计时器,因为不再需要。

在绘画程序中,您已经知道开始位置和结束位置,所以只需在两者之间的“计数器”百分比处画线。因此,如果您知道 startX 并且知道 endX,您的绘制版本是 startX + ((endX - startX) / 100 * counter)。对每一行的顶部、左侧、右侧和底部执行此操作,您就完成了。

于 2012-04-12T05:12:19.020 回答
1

如果我没记错你有眨眼,这是你的问题吗?尝试使用这个BufferedGraphics 小例子

System.Drawing.Graphics g = this.CreateGraphics();
    System.Drawing.BufferedGraphicsContext dc = new BufferedGraphicsContext();
    BufferedGraphics backbuffer = dc.Allocate(g, new Rectangle(new Point(0, 0), g.VisibleClipBounds.Size.ToSize()));
    backbuffer.Graphics.DrawLine(Pens.White, 10, 10, 10, 100);
    backbuffer.Render(g);
于 2012-04-12T07:58:02.527 回答