Эффект для отображения панели в C # .net - PullRequest
2 голосов
/ 24 февраля 2010

Я хочу использовать панель в форме Windows в C # .net. Я устанавливаю свойство Visible этого элемента управления в false, и когда я нажимаю на кнопку, отображается панель. Я хочу показать панель каким-нибудь эффектом.

Пожалуйста, помогите мне за это

Ответы [ 2 ]

4 голосов
/ 24 февраля 2010

Вы покидаете нас, гадая о том, какой эффект вы ищете. Я просто произвольно выберу коллапс и расширим эффект. Требуется таймер, вы реализуете эффект в обработчике событий Tick. Вот пример, он требует панели, таймера и кнопки:

  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
      timer1.Interval = 16;
      timer1.Tick += new EventHandler(timer1_Tick);
      panel1.BackColor = Color.Aqua;
      mWidth = panel1.Width;

    }
    int mDir = 0;
    int mWidth;
    void timer1_Tick(object sender, EventArgs e) {
      int width = panel1.Width + mDir;
      if (width >= mWidth) {
        width = mWidth;
        timer1.Enabled = false;
      }
      else if (width < Math.Abs(mDir)) {
        width = 0;
        timer1.Enabled = false;
        panel1.Visible = false;
      }
      panel1.Width = width;
    }

    private void button1_Click(object sender, EventArgs e) {
      mDir = panel1.Visible ? -5 : 5;
      panel1.Visible = true;
      timer1.Enabled = true;
    }
  }
2 голосов
/ 24 февраля 2010

Единственный эффект, который я могу придумать, - это расширить панель с помощью таймера и постепенно изменять размер панели.

Я бы порекомендовал вам использовать WPF вместо Winforms, которые очень хорошо справляются с подобными вещами. Вы можете анимировать все свойства элемента управления, такие как местоположение, размер, альфа. Пожалуйста, проверьте эти статьи о анимации WPF

...