C# 实现窗体的淡入淡出效果

时间:2022-11-22 09:03:08
using System;

namespace FormFade
{
    class Win32
    {
        public const Int32 AW_HOR_POSITIVE = 0x00000001;
        public const Int32 AW_HOR_NEGATIVE = 0x00000002;
        public const Int32 AW_VER_POSITIVE = 0x00000004;
        public const Int32 AW_VER_NEGATIVE = 0x00000008;
        public const Int32 AW_CENTER = 0x00000010;
        public const Int32 AW_HIDE = 0x00010000;
        public const Int32 AW_ACTIVATE = 0x00020000;
        public const Int32 AW_SLIDE = 0x00040000;
        public const Int32 AW_BLEND = 0x00080000;

        [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
        public static extern bool AnimateWindow(
            IntPtr hwnd,    //窗口句柄
            int dwTime,     //动画持续时间
            int dwFlags);   //动画效果
    }
}

//在窗体的构造中调用动态窗口的方法。

public TestForm()
{
       InitializeComponent();
       Win32.AnimateWindow(this.Handle, 1000, Win32.AW_BLEND + Win32.AW_VER_NEGATIVE);
}