Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Интернет -

C# - Графика

Все примеры / Мультимедиа / Графика

Постепенное увеличение изображения

Автор: Интернет | добавлено: 12.01.2011, 19:49 | просмотров: 3491 (1+) | комментариев: 0 | рейтинг: *x0
Пример демонстрирует прорисовку на форме плавно увеличивающегося изображения. Используются потоки (Thread), если честно, совсем не правильно, но для понятия основных принципов создания простой анимации в C# (.NET) будет достаточно.

Код

using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;

public class AnimateImage : Form
{
  private int width = 10;
  private int height = 10;

  Image pic = Image.FromFile("kbyte305x130.gif");
  private Button abort = new Button();
  Thread t;

  public AnimateImage()
  {
    abort.Text = "Abort";
    abort.Location = new Point(50, 230);
    abort.Click += new EventHandler(Abort_Click);
    Controls.Add(abort);

    SetStyle(ControlStyles.DoubleBuffer
           | ControlStyles.AllPaintingInWmPaint
           | ControlStyles.UserPaint, true);

    t = new Thread(new ThreadStart(Run));
    t.Start();
  }
  protected void Abort_Click(object sender, EventArgs e)
  {
    t.Abort();
  }

  protected override void OnPaint(PaintEventArgs e)
  {
    Graphics g = e.Graphics;
    g.DrawRectangle(Pens.Black, 8, 8, width + 3, height + 3);
    g.DrawImage(pic, 10, 10, width, height);
    base.OnPaint(e);
  }

  public void Run()
  {
    int dx = 5, dy = 5;
    while (true)
    {
      for (int i = 0; i < 500; i++)
      {
        width += dx;
        height += dy;
        Invalidate();
        Thread.Sleep(30);
      }
      dx = -dx; dy = -dy;
    }
  }
  public static void Main()
  {
    Application.Run(new AnimateImage());
  }
}
Файлы Увеличиение изображения.zip (30,06 Кб)
Об авторе

Интернет

Анонимный пользователь сети Интернет. Автор великого множества кодов и программных решений. Никого никогда не видел в лицо этого пользователя, ходят слухи, что он многоликий, и может одновременно находиться в разных частях света.
Интернет
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики