C#實(shí)現(xiàn)winform漸變效果的方法
本文實(shí)例實(shí)現(xiàn)一個(gè)啟動(dòng)畫(huà)面,采用了顯示Aform,過(guò)一段時(shí)間,隱藏這個(gè)Aform,showdialog下一個(gè)Bform,closeAForm這個(gè)方法來(lái)做了,不知道大家有沒(méi)有更好的辦法。
設(shè)定程序從Aform啟動(dòng):
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Aform());
}
AForm中定義如下timer:
StartWindowShowTime HideWindowStart HideWindowSpeed ShowWindowStart
定義了他們的屬性:
StartWindowShowTime(顯示Aform的時(shí)間長(zhǎng)度) Enabled=True Interval=5000 (100=1秒)
HideWindowStart (開(kāi)始隱藏Aform的過(guò)程) Enabled=True Interval=4500
HideWindowSpeed (隱藏Aform的漸變間隔) Enabled=False Interval=10
ShowWindowStart (顯示AForm的漸變間隔) Enabled=True Interval=10
下面開(kāi)始定義這些timer的Tick 在Events里面可以直接填寫(xiě),timer就這一個(gè),也可以后臺(tái)寫(xiě),不過(guò)我覺(jué)得在這里填寫(xiě)比較方便,而且可以自動(dòng)生成方法的聲明,不用找了。偷懶一下。
StartWindowShowTime Tick:ShowMainwindow
HideWindowStart Tick:HideWindow
HideWindowSpeed Tick:HideWindowSpeedStart
ShowWindowStart Tick:ShowWindow
好了,到這里我要說(shuō)Windows Form 實(shí)現(xiàn)透明效果,漸變效果,淡入淡出效果的實(shí)現(xiàn)最重要一員了,那就是Form屬性里的Opacity,用的就是這個(gè)。我考證過(guò),只有2000以上的系統(tǒng)支持這個(gè)屬性。
我們先將Aform的Opacity設(shè)置成0,好了開(kāi)始寫(xiě)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;
}
}
}
好了,這個(gè)時(shí)候大家運(yùn)行看看,可以看到有淡入淡出效果。
我本來(lái)把Opacity每次更改的數(shù)值設(shè)置成了0.1,可是發(fā)現(xiàn)如果那樣的話淡入淡出不是很潤(rùn),所以縮小了數(shù)值和間隔時(shí)間。這樣看起來(lái)就潤(rùn)多了。自我感覺(jué)不錯(cuò)。
如果大家的程序只需要透明,那么只用設(shè)置Opacity這個(gè)就可以了。
漸變和淡入淡出照貓畫(huà)虎用timer和Opacity這個(gè)配合一下,就可以做出來(lái)了。
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助
- WinForm實(shí)現(xiàn)窗體最大化并遮蓋任務(wù)欄的方法
- C#實(shí)現(xiàn)WinForm禁止最大化、最小化、雙擊標(biāo)題欄、雙擊圖標(biāo)等操作的方法
- Winform實(shí)現(xiàn)鼠標(biāo)可穿透的窗體鏤空效果
- Winform窗體效果實(shí)例分析
- WinForm實(shí)現(xiàn)自定義右下角提示效果的方法
- WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新聞效果的方法
- WinForm實(shí)現(xiàn)同時(shí)讓兩個(gè)窗體有激活效果的特效實(shí)例
- C# WinForm實(shí)現(xiàn)Win7 Aero透明效果代碼
- winform下實(shí)現(xiàn)win7 Aero磨砂效果實(shí)現(xiàn)代碼
- 用 C# Winform做出全透明的磨砂玻璃窗體效果代碼
- WinForm實(shí)現(xiàn)狀態(tài)欄跑馬燈效果的方法示例
相關(guān)文章
c#中xml文檔注釋編譯dll引用到其它項(xiàng)目示例
這篇文章主要介紹了c#中xml文檔注釋編譯dll引用到其它項(xiàng)目示例,需要的朋友可以參考下2014-02-02C#引用類(lèi)型轉(zhuǎn)換的常見(jiàn)方式總結(jié)
這篇文章主要介紹了C#引用類(lèi)型轉(zhuǎn)換的常見(jiàn)方式,包括子類(lèi)轉(zhuǎn)換成父類(lèi),父類(lèi)轉(zhuǎn)換成子類(lèi),以及不是子父級(jí)關(guān)系類(lèi)之間的轉(zhuǎn)換,需要的朋友可以參考下2014-09-09c# 9.0新特性nint和Pattern matching的使用方法
這篇文章主要介紹了c# 9.0新特性nint和Pattern matching的使用方法,文中講解非常細(xì)致,幫助你更好的學(xué)習(xí)c# 9.0,有需求的朋友可以參考下2020-06-06Unity 如何通過(guò)反射給gameObject添加組件
這篇文章主要介紹了Unity 通過(guò)反射給gameObject添加組件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04VS中模仿WPF模板創(chuàng)建最簡(jiǎn)單的WPF程序
這篇文章主要為大家詳細(xì)介紹了VS中模仿WPF模板創(chuàng)建最簡(jiǎn)單的WPF程序的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-05-05DataGridView控件顯示行號(hào)的正確代碼及分析
今天要用到DataGridView,想給它動(dòng)態(tài)的顯示行號(hào)。于是在網(wǎng)上找了一下解決方法。結(jié)果發(fā)現(xiàn)了不少問(wèn)題。然而就是這么一段有錯(cuò)的代碼,幾乎充斥著整個(gè)互聯(lián)網(wǎng),千篇一律的COPY,沒(méi)有一個(gè)人糾正2013-08-08C#如何利用結(jié)構(gòu)體對(duì)固定格式數(shù)據(jù)進(jìn)行解析
這篇文章主要為大家詳細(xì)介紹了C#利用結(jié)構(gòu)體對(duì)固定格式數(shù)據(jù)進(jìn)行解析,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01winform實(shí)現(xiàn)限制及解除鼠標(biāo)移動(dòng)范圍的方法
這篇文章主要介紹了winform實(shí)現(xiàn)限制及解除鼠標(biāo)移動(dòng)范圍的方法,涉及C#控制WinForm鼠標(biāo)事件屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09