下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
創(chuàng)建項目自定義控件庫其實本質(zhì)上就是一個類庫,所以我們在創(chuàng)建項目時直接創(chuàng)建類庫項目。在創(chuàng)建好的類庫項目中添加“用戶控件”。實現(xiàn)思路整個控件其實是由四個部分組成的。第一個部分為一個固定顏色的底圓,第二部分是一個漸變色的扇形,第三部分是一個顏色與窗體背景色相同的上圓,第四部分是顯示百分比的文字。最后將這四個部分疊加起來就得到了我們最終想要得到的控件。實現(xiàn)過程1.繪制準備在用戶控件中添加代碼,我們使用OnPaint事件來繪制控件,通過參數(shù)e來獲取畫布。并給畫布設置一些屬性。protectedoverridevoidOnPaint(PaintEventArgse)
{
base.OnPaint(e);
//
獲取畫布
Graphicsgraphics
=
e.Graphics;
//消除鋸齒
graphics.SmoothingMode
=
SmoothingMode.AntiAlias;
//文字顯示效果
graphics.TextRenderingHint
=
System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
//插補模式
graphics.InterpolationMode
=
InterpolationMode.HighQualityBicubic;
//圖片呈現(xiàn)質(zhì)量
graphics.CompositingQuality
=
CompositingQuality.HighQuality;
}2.繪制底圓我們在事件中繼續(xù)添加一些代碼,使用畫布的FillEllipse()方法繪制一個底圓,底圓的大小依照整個控件的大小創(chuàng)建。//
繪制底圓
SolidBrushbrush1
=
newSolidBrush(Color.FromArgb(93,
107,
153));
Rectanglerectangle1
=
newRectangle(1,
1,
this.Width
-
2,
this.Height
-
2);
graphics.FillEllipse(brush1,
rectangle1);測試效果如下:3.繪制扇形首先創(chuàng)建屬性與字段,以便使用屬性來控制扇形的區(qū)域,使得扇形的區(qū)域是可變的。//最大值
private
float
maxValue
=
100;
public
float
MaxValue
{
get
{
return
maxValue;
}
set
{
maxValue
=
value;
this.Invalidate();
}
}
//實際值
private
float
actureValue
=
60;
public
float
ActureValue
{
get
{
return
actureValue;
}
set
{
actureValue
=
value;
this.Invalidate();
}
}
//文字顯示值
private
float
PercentVal
=
0;繪制扇形的大小與底圓的大小相一致,顏色采用漸變色。//繪制扇形
Rectanglerectangle2
=
newRectangle(1,
1,
this.Width
-
2,
this.Height
-
2);
LinearGradientBrushbrush2
=
newLinearGradientBrush(rectangle2,
Color.Blue,
Color.Red,
150.0f,
true);
this.PercentVal
=
(ActureValue
/
MaxValue)
*
100;
graphics.FillPie(brush2,
rectangle2,
-90,
(ActureValue
/
MaxValue)
*
360f);測試效果如下:4.繪制上圓繪制上圓比較簡單,大小比底圓稍小,位置在整個控件中心,顏色與控件顏色相同。//繪制上圓
SolidBrushsolidBrushElipse
=
newSolidBrush(this.BackColor);
Rectanglerectangle3
=
newRectangle(15,
15,
this.Width
-
30,
this.Height
-
30);
graphics.FillEllipse(solidBrushElipse,
rectangle3);測試效果如下:5.繪制文字最后在控件的中心位置繪制文字//繪制文字
Fontfont
=
newFont("華為宋體",
14);
PointFpoint
=
newPointF(((float)this.Width)
/
2.0f
-
27,
((float)this.Height)
/
2.0f
-
10);
graphics.DrawString(this.PercentVal.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬教版八年級物理下冊月考試卷含答案
- 2025年粵教滬科版選擇性必修3歷史下冊階段測試試卷含答案
- 2025年粵教新版八年級地理下冊階段測試試卷
- 2025年蘇教版七年級生物下冊月考試卷
- 遵義職業(yè)技術學院《中國古代文學與中學語文教育》2023-2024學年第一學期期末試卷
- 二零二五版木工雕刻藝術創(chuàng)作授權合同4篇
- 2025年度農(nóng)用拖拉機租賃與農(nóng)產(chǎn)品溯源合同4篇
- 二零二五年度金融行業(yè)派遣勞務安全保障合同4篇
- 2025年度屋頂綠化租賃與節(jié)能減排合同4篇
- 二零二五年倉儲設備采購與運輸合同3篇
- 2024年英語高考全國各地完形填空試題及解析
- 智能養(yǎng)老院視頻監(jiān)控技術方案
- 你比我猜題庫課件
- 體育概論(第二版)課件第三章體育目的
- 無人駕駛航空器安全操作理論復習測試附答案
- 建筑工地春節(jié)留守人員安全技術交底
- 默納克-NICE1000技術交流-V1.0
- 蝴蝶蘭的簡介
- 老年人心理健康量表(含評分)
- 《小兒靜脈輸液速度》課件
- 營銷人員薪酬標準及績效考核辦法
評論
0/150
提交評論