下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
創(chuàng)建項(xiàng)目自定義控件庫其實(shí)本質(zhì)上就是一個(gè)類庫,所以我們在創(chuàng)建項(xiàng)目時(shí)直接創(chuàng)建類庫項(xiàng)目。在創(chuàng)建好的類庫項(xiàng)目中添加“用戶控件”。實(shí)現(xiàn)思路整個(gè)控件其實(shí)是由四個(gè)部分組成的。第一個(gè)部分為一個(gè)固定顏色的底圓,第二部分是一個(gè)漸變色的扇形,第三部分是一個(gè)顏色與窗體背景色相同的上圓,第四部分是顯示百分比的文字。最后將這四個(gè)部分疊加起來就得到了我們最終想要得到的控件。實(shí)現(xiàn)過程1.繪制準(zhǔn)備在用戶控件中添加代碼,我們使用OnPaint事件來繪制控件,通過參數(shù)e來獲取畫布。并給畫布設(shè)置一些屬性。protectedoverridevoidOnPaint(PaintEventArgse)
{
base.OnPaint(e);
//
獲取畫布
Graphicsgraphics
=
e.Graphics;
//消除鋸齒
graphics.SmoothingMode
=
SmoothingMode.AntiAlias;
//文字顯示效果
graphics.TextRenderingHint
=
System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
//插補(bǔ)模式
graphics.InterpolationMode
=
InterpolationMode.HighQualityBicubic;
//圖片呈現(xiàn)質(zhì)量
graphics.CompositingQuality
=
CompositingQuality.HighQuality;
}2.繪制底圓我們在事件中繼續(xù)添加一些代碼,使用畫布的FillEllipse()方法繪制一個(gè)底圓,底圓的大小依照整個(gè)控件的大小創(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();
}
}
//實(shí)際值
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.繪制上圓繪制上圓比較簡單,大小比底圓稍小,位置在整個(gè)控件中心,顏色與控件顏色相同。//繪制上圓
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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《裝飾施工圖范例》課件
- 2023年水處理劑項(xiàng)目籌資方案
- 危險(xiǎn)廢物相關(guān)法律法規(guī)及規(guī)范化管理培訓(xùn) 課件
- 機(jī)械制圖測試題及參考答案
- 東莞市長安實(shí)驗(yàn)中學(xué)2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷
- 養(yǎng)老院老人生活娛樂設(shè)施管理制度
- 養(yǎng)老院老人健康監(jiān)測服務(wù)質(zhì)量管理制度
- 投資養(yǎng)殖合同(2篇)
- 2024年版:臨時(shí)建設(shè)設(shè)施買賣合同規(guī)范
- 2025年阿克蘇貨運(yùn)車從業(yè)考試題
- 物業(yè)糾紛溝通應(yīng)對實(shí)務(wù)與法律依據(jù)
- 【物理】2023-2024學(xué)年高一上人教版(2019)必修第一冊 相互作用-力(單元解讀課件)
- 內(nèi)蒙12J9-1 室外工程建筑標(biāo)準(zhǔn)圖集
- 電源線測試報(bào)告
- ERAS下肺移植麻醉
- 送教上門工作計(jì)劃三篇
- 某工程管道直飲水施工方案
- 危機(jī)管理手冊
- 2023山東省科創(chuàng)集團(tuán)限公司集團(tuán)總部招聘1人上岸筆試歷年難、易錯(cuò)點(diǎn)考題附帶參考答案與詳解
- 人教版統(tǒng)編三年級語文上冊各單元《復(fù)習(xí)課件》
- 數(shù)學(xué)建模基礎(chǔ)學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
評論
0/150
提交評論