C#實現(xiàn)winform漸變效果的方法
本文實例實現(xiàn)一個啟動畫面,采用了顯示Aform,過一段時間,隱藏這個Aform,showdialog下一個Bform,closeAForm這個方法來做了,不知道大家有沒有更好的辦法。
設(shè)定程序從Aform啟動:
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Aform());
}
AForm中定義如下timer:
StartWindowShowTime HideWindowStart HideWindowSpeed ShowWindowStart
定義了他們的屬性:
StartWindowShowTime(顯示Aform的時間長度) Enabled=True Interval=5000 (100=1秒)
HideWindowStart (開始隱藏Aform的過程) Enabled=True Interval=4500
HideWindowSpeed (隱藏Aform的漸變間隔) Enabled=False Interval=10
ShowWindowStart (顯示AForm的漸變間隔) Enabled=True Interval=10
下面開始定義這些timer的Tick 在Events里面可以直接填寫,timer就這一個,也可以后臺寫,不過我覺得在這里填寫比較方便,而且可以自動生成方法的聲明,不用找了。偷懶一下。
StartWindowShowTime Tick:ShowMainwindow
HideWindowStart Tick:HideWindow
HideWindowSpeed Tick:HideWindowSpeedStart
ShowWindowStart Tick:ShowWindow
好了,到這里我要說Windows Form 實現(xiàn)透明效果,漸變效果,淡入淡出效果的實現(xiàn)最重要一員了,那就是Form屬性里的Opacity,用的就是這個。我考證過,只有2000以上的系統(tǒng)支持這個屬性。
我們先將Aform的Opacity設(shè)置成0,好了開始寫Aform的代碼
{
public Form()
{
InitializeComponent();
}
private void Start_Load(object sender, EventArgs e)
{
StartWindowShowTime.Start();
HideWindowStart.Start();
}
private void ShowMainwindow(object sender, EventArgs e)
{
Bform showmainwindows = new Bform();
this.Hide();
StartWindowShowTime.Stop();
HideWindowStart.Stop();
HideWindowSpeed.Stop();
showmainwindows.ShowDialog();
this.Close();
}
private void HideWindow(object sender, EventArgs e)
{
HideWindowSpeed.Start();
}
private void HideWindowSpeedStart(object sender, EventArgs e)
{
this.Opacity = this.Opacity - 0.02;
}
private void ShowWindow(object sender, EventArgs e)
{
if (this.Opacity == 1)
{
ShowWindowStart.Stop();
}
else
{
this.Opacity = this.Opacity + 0.02;
}
}
}
好了,這個時候大家運行看看,可以看到有淡入淡出效果。
我本來把Opacity每次更改的數(shù)值設(shè)置成了0.1,可是發(fā)現(xiàn)如果那樣的話淡入淡出不是很潤,所以縮小了數(shù)值和間隔時間。這樣看起來就潤多了。自我感覺不錯。
如果大家的程序只需要透明,那么只用設(shè)置Opacity這個就可以了。
漸變和淡入淡出照貓畫虎用timer和Opacity這個配合一下,就可以做出來了。
希望本文所述對大家的C#程序設(shè)計有所幫助
- WinForm實現(xiàn)窗體最大化并遮蓋任務(wù)欄的方法
- C#實現(xiàn)WinForm禁止最大化、最小化、雙擊標(biāo)題欄、雙擊圖標(biāo)等操作的方法
- Winform實現(xiàn)鼠標(biāo)可穿透的窗體鏤空效果
- Winform窗體效果實例分析
- WinForm實現(xiàn)自定義右下角提示效果的方法
- WinForm實現(xiàn)仿視頻播放器左下角滾動新聞效果的方法
- WinForm實現(xiàn)同時讓兩個窗體有激活效果的特效實例
- C# WinForm實現(xiàn)Win7 Aero透明效果代碼
- winform下實現(xiàn)win7 Aero磨砂效果實現(xiàn)代碼
- 用 C# Winform做出全透明的磨砂玻璃窗體效果代碼
- WinForm實現(xiàn)狀態(tài)欄跑馬燈效果的方法示例
相關(guān)文章
c# 9.0新特性nint和Pattern matching的使用方法
這篇文章主要介紹了c# 9.0新特性nint和Pattern matching的使用方法,文中講解非常細(xì)致,幫助你更好的學(xué)習(xí)c# 9.0,有需求的朋友可以參考下2020-06-06C#如何利用結(jié)構(gòu)體對固定格式數(shù)據(jù)進行解析
這篇文章主要為大家詳細(xì)介紹了C#利用結(jié)構(gòu)體對固定格式數(shù)據(jù)進行解析,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01winform實現(xiàn)限制及解除鼠標(biāo)移動范圍的方法
這篇文章主要介紹了winform實現(xiàn)限制及解除鼠標(biāo)移動范圍的方法,涉及C#控制WinForm鼠標(biāo)事件屬性的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09