У меня есть форма для окон. Я бы хотел, чтобы кнопка нажала кнопку, чтобы оживить расширение формы, открыв новый раздел формы (без необходимости создавать и анимацию одного из них).Анимация WinForms
Возможно ли это?
У меня есть форма для окон. Я бы хотел, чтобы кнопка нажала кнопку, чтобы оживить расширение формы, открыв новый раздел формы (без необходимости создавать и анимацию одного из них).Анимация WinForms
Возможно ли это?
Вы можете получить хороший эффект, полагаясь на Timer
. Здесь у вас есть пример кода, показывающий, как «оживить» увеличивающийся размер основной формы после нажатия кнопки. Увеличивая/уменьшая все переменные (X/Y inc. Values или interval), вы можете получить полный контроль над тем, как анимация «выглядит». Просто включите кнопку (button1
) и таймер (timer1
) на вашу форму и код ниже.
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int timerInterval, curWidth, curHeight, incWidth, incHeight, maxWidth, maxHeight;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
curWidth = this.Location.X + this.Width;
curHeight = this.Location.Y + this.Height;
incWidth = 100;
incHeight = 20;
maxWidth = 2000;
maxHeight = 1500;
timerInterval = 100;
timer1.Enabled = false;
timer1.Interval = timerInterval;
}
private void timer1_Tick(object sender, EventArgs e)
{
curWidth = curWidth + incWidth;
curHeight = curHeight + incHeight;
if (curWidth >= maxWidth)
{
curWidth = maxWidth;
}
if (curHeight >= maxHeight)
{
curHeight = maxHeight;
}
this.Width = curWidth;
this.Height = curHeight;
if (this.Width == maxWidth && this.Height == maxHeight)
{
timer1.Stop();
}
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = !timer1.Enabled;
}
}
}
код в 'button1_Click' может быть более кратким, как это' timer1.Enabled = timer1.Enabled;! ' –
@KingKing хороший момент, я обновил код. Честно говоря, я не знал, что таймер может быть запущен через свойство Enabled; Я думал, что это логическая переменная, указывающая только состояние. – varocarbas