窗口漸現效果主要是增強軟件的用戶體驗。目前winform程序在Vista/Win7上已經自動具備了該功能,所以只有在XP等早期版本系統上才有勇武之地。
說說具體實現吧:-)
1.利用Timer控件控制窗體的透明度(Opacity)。
/// <summary>
/// 顯示窗體
/// </summary>
private void ShowWin()
{
this.tsmiShowHide.Text = "隱藏";
this.SetWindowState();
this.Opacity = 0;
// 打開窗口漸現效果
Timer tStart = new Timer();
tStart.Interval = 100;
tStart.Tick += new EventHandler(tStart_Tick);
tStart.Start();
}
/// <summary>
/// 隱藏窗體
/// </summary>
private void HideWin()
{
this.tsmiShowHide.Text = "顯示";
// 關閉窗口漸現效果
Timer tClose = new Timer();
tClose.Interval = 100;
tClose.Tick += new EventHandler(tClose_Tick);
tClose.Start();
}
/// <summary>
/// 關閉窗體漸現效果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void tClose_Tick(object sender, EventArgs e)
{
// 每一次執行透明度減少10%
this.Opacity -= 0.1;
if (this.Opacity <= 0)
{
((Timer)sender).Stop();
}
}
/// <summary>
/// 打開窗體漸現效果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void tStart_Tick(object sender, EventArgs e)
{
// 每一次執行透明度增加10%
this.Opacity += 0.1;
if (this.Opacity == 1)
{
((Timer)sender).Stop();
this.Focus();
}
}
漸現效果用在EyesBaby上也是所謂小試牛刀吧。
總結
現在EyesBaby功能實現部分寫到這,就到此告一小節了。前面寫了一部分,其實技術含量並沒有多少。本人技術水平一斑,寫出來東西大部分還只能是一種自我記錄的方式,並不能起到言傳身授的境界,望各位海量!需要學習的地方很多,也有博友提了不少好的建議。比如自動更新部分。在此拜謝了!
將來希望能多開發些對我們工作/生活有幫助的個人軟件(本人信仰“技術改變生活”),還希望大家多多提供建議和技術幫助!
出處:http://yizhuqing.cnblogs.com/