C#實(shí)現(xiàn)winform漸變效果的方法
本文實(shí)例實(shí)現(xiàn)一個(gè)啟動(dòng)畫面,采用了顯示Aform,過一段時(shí)間,隱藏這個(gè)Aform,showdialog下一個(gè)Bform,closeAForm這個(gè)方法來做了,不知道大家有沒有更好的辦法。
設(shè)定程序從Aform啟動(dòng):
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Aform());
}
AForm中定義如下timer:
StartWindowShowTime HideWindowStart HideWindowSpeed ShowWindowStart
定義了他們的屬性:
StartWindowShowTime(顯示Aform的時(shí)間長度) 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就這一個(gè),也可以后臺(tái)寫,不過我覺得在這里填寫比較方便,而且可以自動(dòng)生成方法的聲明,不用找了。偷懶一下。
StartWindowShowTime Tick:ShowMainwindow
HideWindowStart Tick:HideWindow
HideWindowSpeed Tick:HideWindowSpeedStart
ShowWindowStart Tick:ShowWindow
好了,到這里我要說Windows Form 實(shí)現(xiàn)透明效果,漸變效果,淡入淡出效果的實(shí)現(xiàn)最重要一員了,那就是Form屬性里的Opacity,用的就是這個(gè)。我考證過,只有2000以上的系統(tǒng)支持這個(gè)屬性。
我們先將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;
}
}
}
好了,這個(gè)時(shí)候大家運(yùn)行看看,可以看到有淡入淡出效果。
我本來把Opacity每次更改的數(shù)值設(shè)置成了0.1,可是發(fā)現(xiàn)如果那樣的話淡入淡出不是很潤,所以縮小了數(shù)值和間隔時(shí)間。這樣看起來就潤多了。自我感覺不錯(cuò)。
如果大家的程序只需要透明,那么只用設(shè)置Opacity這個(gè)就可以了。
漸變和淡入淡出照貓畫虎用timer和Opacity這個(gè)配合一下,就可以做出來了。
希望本文所述對大家的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#取得Web程序和非Web程序的根目錄的N種取法總結(jié)
C#取得Web程序和非Web程序的根目錄的N種取法,方便大家知道,有更好的方法,請說明2008-03-03
C# SortedList排序列表的實(shí)現(xiàn)
本文主要介紹了C# SortedList排序列表的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
C#中Invoke和BeginInvoke區(qū)別小結(jié)
有時(shí)候,我們不得不跨線程調(diào)用主界面的控件來進(jìn)行操作,所以為了方便的解決問題,.net為我們提供了Invoke?與beginInvoke,那么Invoke和BeginInvoke區(qū)別在哪,本文就來詳細(xì)的介紹一下2023-08-08
使用C#編寫簡單的圖形化的可發(fā)送附件的郵件客戶端程序
這篇文章主要介紹了使用C#編寫一個(gè)圖形化的可發(fā)送附件的郵件客戶端程序的方法,文中的示例同樣是基于支持smtp協(xié)議的郵件服務(wù)器,需要的朋友可以參考下2016-02-02
C#在窗體中設(shè)計(jì)滾動(dòng)字幕的方法
普通窗體中的文字位置都是固定的,但在一些窗體中需要讓文字動(dòng)起來,如一些廣告性較強(qiáng)的界面中需要做一些滾動(dòng)的字幕,所以本文給大家介紹了C#在窗體中設(shè)計(jì)滾動(dòng)字幕的方法,需要的朋友可以參考下2024-04-04
Unity?UGUI的RawImage原始圖片組件使用示例詳解
這篇文章主要為大家介紹了Unity?UGUI的RawImage原始圖片組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

