Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言中设置图像动画#_C#_Image_Animation - Fatal编程技术网

C# 如何在C语言中设置图像动画#

C# 如何在C语言中设置图像动画#,c#,image,animation,C#,Image,Animation,我正在尝试用C#制作图像动画。基本上,我想拍摄一张图像并将其连接到另一个函数,根据1到10的比例,使图像向上或向下移动。默认情况下,图像将从1开始。我已经搜索并找到了使形状在屏幕上上上下移动的方法,但不是实际的图像。图像很小,比如说60x60像素。我觉得这应该很简单,但我还没有弄明白。我想在Windows窗体上放置一个图像,然后基本上让它沿窗体的y轴上下移动,但我希望它能够平滑地移动 好的,我可以把一个按钮连接到一个定时器功能上,让按钮在屏幕上平稳地上下移动。在程序运行期间,按钮必须保持移动。然

我正在尝试用C#制作图像动画。基本上,我想拍摄一张图像并将其连接到另一个函数,根据1到10的比例,使图像向上或向下移动。默认情况下,图像将从1开始。我已经搜索并找到了使形状在屏幕上上上下移动的方法,但不是实际的图像。图像很小,比如说60x60像素。我觉得这应该很简单,但我还没有弄明白。我想在Windows窗体上放置一个图像,然后基本上让它沿窗体的y轴上下移动,但我希望它能够平滑地移动

好的,我可以把一个按钮连接到一个定时器功能上,让按钮在屏幕上平稳地上下移动。在程序运行期间,按钮必须保持移动。然而,当图像到达某个位置时,我很难编写一个函数来停止计时器和图像(按钮)的移动。否则,计时器将继续,图像(按钮)将移出屏幕。我试过搞乱button.Location.Y函数,但我还没有让它正常工作。有人能给我建议吗?谢谢哦,是的,一旦图像(按钮)到达192或447的Y位置,它应该停止移动

我所拥有的一个例子:

    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();
        //}
    }
private void timer2\u勾选(对象发送方,事件参数e)
{
按钮2.Top=按钮2.Top+1;
if(button2.Location.Y==button2.Location.Y-192)
{
timer2.Stop();
timer3.Stop();
}
//如果(定时器限制<100)
//{
//按钮2.Top=按钮2.Top+1;
//定时器限制++;
//}
//否则
//{
//timer2.Stop();
//}
}

有几种方法可以做到这一点。您可以使用PictureBox并更改其Location属性。或者可以在表单的OnPaint()覆盖中绘制图像,并将参数更改为e.Graphics.DrawImage()。然后必须调用Invalidate()以强制运行OnPaint方法。这是最便宜的方式。

这是WinForms吗?WPF?新华社?Silverlight?您不会想使用WinForms,因为它根本不能很好地处理移动控件。WPF才是最好的选择。内特,这不是上面提到的。有人建议我使用计时器在窗体上移动对象。