Как анимировать изображение в C # - PullRequest
3 голосов
/ 04 апреля 2011

Я пытаюсь анимировать изображение в C #. По сути, я хочу взять изображение и соединить его с другой функцией, и, основываясь на шкале от 1 до 10, заставить изображение двигаться вверх или вниз. По умолчанию изображение начинается с 1. Я искал и нашел способы заставить формы перемещаться вверх и вниз по экрану, но не фактическое изображение. Изображение маленькое, скажем, 60х60 пикселей. Я чувствую, что это должно быть просто, но мне еще предстоит разобраться. Я думал о том, чтобы просто поместить изображение в форму 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();
        //}
    }

1 Ответ

2 голосов
/ 04 апреля 2011

Несколько способов сделать это.Вы можете просто использовать PictureBox и изменить его свойство Location.Или вы можете нарисовать изображение в переопределении OnPaint () формы и изменить аргумент на e.Graphics.DrawImage ().Затем вам придется вызвать Invalidate (), чтобы запустить метод OnPaint.Это самый дешевый способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...