手把手教你開發(fā)圓盤儀表控件_第1頁
手把手教你開發(fā)圓盤儀表控件_第2頁
手把手教你開發(fā)圓盤儀表控件_第3頁
手把手教你開發(fā)圓盤儀表控件_第4頁
手把手教你開發(fā)圓盤儀表控件_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論