作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 C# 为图像制作动画。基本上,我想拍摄一张图像并将其连接到另一个功能,并根据 1 到 10 的比例,使图像向上或向下移动。默认情况下,图像将从 1 开始。我已经搜索并找到了使形状在屏幕上上下移动的方法,但不是实际图像。图片很小,比如 60x60 像素。我觉得这应该很简单,但我还没有弄明白。我正在考虑将图像放在 Windows 窗体上,然后基本上让它沿着窗体的 y 轴向上或向下移动,但我希望它能够平滑移动。
好的,我能够将一个按钮连接到一个计时器功能上,并让按钮在屏幕上平滑地上下移动。该按钮必须在程序运行期间保持移动。但是,我很难编写一个函数来阻止计时器和图像(按钮)在图像到达某个位置后移动。否则,计时器将继续,图像(按钮)将移出屏幕。我试过弄乱 button.Location.Y 函数,但我还没有让它正常工作。有人可以建议吗?谢谢。哦,是的,一旦图像(按钮)到达 Y 位置 192 或 447,它应该停止移动。
我的例子:
private void timer2_Tick(object sender, EventArgs e)
{
button2.Top = button2.Top + 1;
if (button2.Location.Y == button2.Location.Y - 192)
{
timer2.Stop();
timer3.Stop();
}
//if (timer_limit < 100)
//{
// button2.Top = button2.Top + 1;
// timer_limit++;
//}
//else
//{
// timer2.Stop();
//}
}
最佳答案
有几种方法可以做到这一点。您可以只使用 PictureBox 并更改其 Location 属性。或者您可以在窗体的 OnPaint() 覆盖中绘制图像并将参数更改为 e.Graphics.DrawImage()。然后您必须调用 Invalidate() 以强制运行 OnPaint 方法。这是最便宜的方式。
关于c# - 如何在 C# 中为图像设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5543132/
我是一名优秀的程序员,十分优秀!