如何用动画改变形式

本文关键字:变形 改变 动画 何用 | 更新日期: 2023-09-27 18:14:20

如何在win应用程序中使用动画(如褪色,Cutl Up,…)更改表单?

有两个形式Form1和Form2。我在form1中,上面有一个按钮,我想在点击按钮时更改表单。

//button click
Form2 f2=new Form2();
this.hide();
f2.show();

如何用动画改变形式

您可以使用AnimateWindow(),定义一个新的表单类并覆盖OnLoad()来显示您想要的效果。

// Console Application
// Load System.Windows.Forms reference.
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
class SlidingForm: System.Windows.Forms.Form 
{
    const int AW_ACTIVATE = 0X20000;
    const int AW_SLIDE = 0X40000;
    const int AW_HOR_POSITIVE = 0X1;
    protected override void OnLoad(System.EventArgs e)
    {
        AnimateWindow(this.Handle, 1000, AW_ACTIVATE | AW_SLIDE | AW_HOR_POSITIVE);
        base.OnLoad(e);
    }
}
void Main()
{
    var frm = new SlidingForm().ShowDialog;
}

按要求隐藏PictureBox控件的示例代码:

private void button1_Click(object sender, EventArgs e)
{
   const int AW_HIDE = 0x00010000;
   const int AW_SLIDE = 0x00040000;
   const int AW_HOR_NEGATIVE = 0x00000002;
   const int AW_HOR_POSITIVE = 0x00000001;
   // Toggle show/hide
   AnimateWindow(pictureBox1.Handle, 1000, (pictureBox1.Visible) ? (AW_HIDE | AW_HOR_NEGATIVE) : (AW_HOR_POSITIVE) | AW_SLIDE);
   pictureBox1.Visible ^= true;
}

不深入代码本身的细节,我发现这个问题处理了一个类似的主题:WinForms中的简单动画。

这个问题让我想到了一个叫做。net-transitions的库,我认为它正是你想要的。