如果我在一页上有 2 行
我将如何为第一行设置动画以到达第二行的位置?
添加一个“计数器”变量,该变量将是线在两个位置之间经过的距离的百分比。将其初始化为零,因为它从开始位置开始。添加一个计时器,每次它滴答作响时,您都会增加“计数器”并使客户区无效,以便发生重绘。一旦“计数器”达到 100 并且它 100% 到达目标,您将禁用计时器,因为不再需要。
在绘画程序中,您已经知道开始位置和结束位置,所以只需在两者之间的“计数器”百分比处画线。因此,如果您知道 startX 并且知道 endX,您的绘制版本是 startX + ((endX - startX) / 100 * counter)。对每一行的顶部、左侧、右侧和底部执行此操作,您就完成了。
如果我没记错你有眨眼,这是你的问题吗?尝试使用这个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);