視窗漸現效果主要是增強軟體的使用者體驗。目前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://eyesbaby.codeplex.com/
安裝版:http://files.cnblogs.com/yizhuqing/EyesBabySetup10.zip
我的第一款工具 + 生產力-眼保程式(EyesBaby)
EyesBaby1.0使用協助文檔
EyesBaby功能實現之視窗拖拽與縮放功能
EyesBaby功能實現之圖片控制項上添加字元
EyesBaby功能實現之Windows前景色彩調節器
EyesBaby功能實現之軟體更新
EyesBaby功能實現之視窗漸現效果
歡迎加入EyesBaby再次開發小組
EyesBaby需求反饋小組