C#創(chuàng)建背景色漸變窗體的方法實(shí)例
前言
在窗體設(shè)計(jì)時(shí),可以通過(guò)設(shè)置窗體的BackColor屬性來(lái)改變窗口的背景顏色,但是該屬性改變后整個(gè)窗體的客戶(hù)區(qū)都會(huì)變成這種顏色,這樣顯得非常單調(diào)。如果窗體的客戶(hù)區(qū)可以像標(biāo)題欄一樣能夠體現(xiàn)顏色的漸變效果,那么窗體風(fēng)格將會(huì)另有一番風(fēng)味。
1.讓背景漸變色的理論基礎(chǔ)
在實(shí)現(xiàn)窗體背景色漸變功能時(shí)主要用到了Color結(jié)構(gòu)的FromArgb方法,Color結(jié)構(gòu)表示一種ARGB顏色(alpha、紅色、綠色和藍(lán)色),其FromArgb方法用來(lái)從指定的8位顏色值(紅色、綠色和藍(lán)色)創(chuàng)建Color結(jié)構(gòu),該方法為可重載方法,其最常用的語(yǔ)法格式如下:
publie static Color FromArgb(int red,int green,int blue)
FromArgb方法中的參數(shù)說(shuō)明如表:
參 數(shù) | 說(shuō) 明 |
red | 新Color的紅色分量值,有效值為0~255 |
green | 新Color的綠色分量值,有效值為0~255 |
blue | 新Color的藍(lán)色分量值,有效值為0~255 |
返回值 | 創(chuàng)建的Color結(jié)構(gòu) |
2.讓背景漸變色的方法
FromArgb方法就是用3種不同的色值來(lái)返回一個(gè)顏色,而稍微調(diào)整某一種顏色值就可以使整體的顏色發(fā)生細(xì)微的變化,在窗體中至上而下每行填充一種稍微調(diào)整后的顏色,這樣整體看來(lái)就會(huì)產(chǎn)生漸變的效果??梢岳么绑w的Graphics對(duì)象對(duì)窗體進(jìn)行繪圖,該對(duì)象可以完全操控窗體的客戶(hù)區(qū)。
3.一個(gè)實(shí)施例
生成漸變的藍(lán)色背景。
(1)Form1.Designer.cs
namespace _184 { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { SuspendLayout(); // // Form1 // AutoScaleDimensions = new SizeF(7F, 17F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(368, 252); Name = "Form1"; StartPosition = FormStartPosition.CenterScreen; Text = "窗體背景漸變色"; ResumeLayout(false); } #endregion } }
(2)Form1.cs
// 窗體漸變色 namespace _184 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 重寫(xiě)窗體背景色 /// </summary> protected override void OnPaintBackground(PaintEventArgs e) { int intLocation, intHeight; intLocation = ClientRectangle.Location.Y;//為變量intLocation賦值 intHeight = ClientRectangle.Height / 200;//為變量intHeight賦值 for (int i = 255; i >= 0; i--) { Color color = Color.FromArgb(1, i, 100); SolidBrush SBrush = new(color); //實(shí)例化一個(gè)單色畫(huà)筆類(lèi)對(duì)象SBrush Pen pen = new(SBrush, 1); //實(shí)例化一個(gè)用于繪制直線(xiàn)和曲線(xiàn)的對(duì)象pen e.Graphics.DrawRectangle(pen, ClientRectangle.X, intLocation, Width, intLocation + intHeight);//繪制圖形 intLocation += intHeight; //重新為變量intLocation賦值 } } } }
(3)漸變的藍(lán)色背景
到此這篇關(guān)于C#創(chuàng)建背景色漸變窗體的方法實(shí)例的文章就介紹到這了,更多相關(guān)C#創(chuàng)建背景色漸變窗體內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#?從字符串中分離文件路徑、文件名及擴(kuò)展名的操作
在C#中,處理文件時(shí)經(jīng)常需要分離文件路徑、文件名和擴(kuò)展名,通過(guò)使用Microsoft.Win32命名空間和字符串處理方法如Substring、IndexOf()和LastIndexOf(),可以有效地獲取和操作這些信息,本文介紹C#?字符串中分離文件路徑,感興趣的朋友一起看看2024-09-09快速解決C# android base-64 字符數(shù)組的無(wú)效長(zhǎng)度問(wèn)題
下面小編就為大家?guī)?lái)一篇快速解決C# android base-64 字符數(shù)組的無(wú)效長(zhǎng)度問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08C#通過(guò)GET/POST方式發(fā)送Http請(qǐng)求
本文主要介紹了C#實(shí)現(xiàn)http請(qǐng)求的兩種方式,get和post方式。文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09C#實(shí)現(xiàn)會(huì)移動(dòng)的文字效果
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)會(huì)移動(dòng)的文字效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04Unity使用DoTween實(shí)現(xiàn)拋物線(xiàn)效果
這篇文章主要為大家詳細(xì)介紹了Unity使用DoTween實(shí)現(xiàn)拋物線(xiàn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05DevExpress獲取節(jié)點(diǎn)下可視區(qū)域子節(jié)點(diǎn)集合的實(shí)現(xiàn)方法
這篇文章主要介紹了DevExpress獲取節(jié)點(diǎn)下可視區(qū)域子節(jié)點(diǎn)集合的實(shí)現(xiàn)方法,是C#程序設(shè)計(jì)中較為常見(jiàn)的技巧,需要的朋友可以參考下2014-08-08