某日,在網上閑逛,看到一段表單顯示的動態效果代碼,於是實踐之,發覺效果不錯,於是用於登陸表單中,果然增色不少。
一般地,登陸表單啟動時會按表單預設的方式啟動,整個表單一併顯示,若在登入介面能實現一點動畫效果,比方說讓表單由中心一點一點向四周慢慢擴散,最後呈現出整個登陸表單,這樣的效果會增加客戶的體驗度。
登陸表單動畫效果
/// <summary>
///登陸表單動畫效果
/// </summary>
public class AnimateWindowFrom
{
[System.Runtime.InteropServices.DllImport("user32")]
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
const int AW_HOR_POSITIVE = 0x0001;
const int AW_HOR_NEGATIVE = 0x0002;
const int AW_VER_POSITIVE = 0x0004;
const int AW_VER_NEGATIVE = 0x0008;
const int AW_CENTER = 0x0010;
const int AW_HIDE = 0x10000;
const int AW_ACTIVATE = 0x20000;
const int AW_SLIDE = 0x40000;
const int AW_BLEND = 0x80000;
/// <summary>
/// 表單由中心點放大
/// </summary>
/// <param name="hwnd"></param>
public static void WindowZoomIn(IntPtr hwnd)
{
AnimateWindow(hwnd, 1000, AW_CENTER | AW_ACTIVATE);
}
/// <summary>
/// 表單由下往上收縮
/// </summary>
/// <param name="hwnd"></param>
public static void WindowZoomOut(IntPtr hwnd)
{
AnimateWindow(hwnd, 1000, AW_SLIDE | AW_HIDE | AW_VER_NEGATIVE);
}
}
在使用時只要在Form表單的Load和FormClosing事件裡分別加入以下代碼:動態表單
/// <summary>
/// 表單啟動
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
//表單由中心向四周放大
AnimateWindowFrom.WindowZoomIn(this.Handle);
}
/// <summary>
/// 表單關閉
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//表單由下往上伸縮
AnimateWindowFrom.WindowZoomOut(this.Handle);
}
是不是很簡單? 呵呵。 Enjoy it!