版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、聲明本文檔收集自互聯(lián)網(wǎng),版權(quán)歸原作者所有。因不滿有些人用其謀取私利而特意收集上傳,以發(fā)揚共享精神。僅供預(yù)覽或讀者私人使用,嚴(yán)禁用于商業(yè)使用或公開傳播。請在下載預(yù)覽后盡快刪除。,GDI+繪圖編程入門,3,學(xué)習(xí)內(nèi)容,掌握GDI+的基本知識 Graphics對象與Paint事件 常用的數(shù)據(jù)結(jié)構(gòu)、畫筆、畫刷、文字與圖像的顯示 參考例子GUIsample完成大作業(yè),GDI+,GDI+是Microsoft的新一代的二維圖形系統(tǒng),它完全面向?qū)ο?。GDI+包括三部分:二維矢量圖形繪制、圖像處理和文字顯示。要在Windows窗體中顯示字體或繪制圖形必須要使用GDI+。 GDI+提供了多種畫筆、畫刷、圖像等圖形對
2、象,此外還包括一些新的繪圖功能,如Alpha混色、漸變色、紋理、消除鋸齒以及使用包括位圖在內(nèi)的多種圖像格式。 GDI+使用的各種類大都包含在命名空間System:Drawing中。,座標(biāo)系統(tǒng),在我們開始之前, 一定要先知道GDI+ 的座標(biāo)系統(tǒng)如何定義。座標(biāo)原點(0, 0)在左上角, X 軸及Y 軸分別向右及向下增加, 預(yù)設(shè)的單位長度是像素(pixel), 請看下圖:,常用的數(shù)據(jù)結(jié)構(gòu),在使用GDI+顯示文字和繪制圖形時,經(jīng)常要用到一些數(shù)據(jù)結(jié)構(gòu),如Size、Point和Rectangle等。它們在System:Drawing命名空間中定義,都屬于值類型(結(jié)構(gòu)類型)。 Point結(jié)構(gòu) 代表Windo
3、ws窗體應(yīng)用程序中的一個二維表面上的位置,常用于定義窗體或控件的位置;表示一個點的坐標(biāo)值,具有以下兩種屬性: X,定義Point結(jié)構(gòu)的x坐標(biāo)或者水平位置。 Y,定義Point結(jié)構(gòu)的y坐標(biāo)或者垂直位置。 初始化方法有4種 Point():空點; Point( int x, int y ):直接指定X坐標(biāo)和Y坐標(biāo)初始化;,Point結(jié)構(gòu),Point( int dw ):通過一個用32位的整數(shù)來初始化,參數(shù)的高16位表示Y坐標(biāo),低16位表示X坐標(biāo)。 Point( Size sz ):通過一個Size變量來初始化。sz的寬度表示X坐標(biāo),高度表示Y坐標(biāo)。 可通過IsEmpty屬性檢測Point結(jié)構(gòu)是否為
4、空,為空則返回true。 可以直接對Point變量進(jìn)行+、=、!=運算以及Point變量與Size值的加減操作。 PointF結(jié)構(gòu)類似Point結(jié)構(gòu),區(qū)別是它的坐標(biāo)是浮點值。 Point值可以隱式自動轉(zhuǎn)換成PointF值;PointF值轉(zhuǎn)換成Point值,可以通過Point結(jié)構(gòu)包含的3種靜態(tài)方法: Ceiling,每個坐標(biāo)值取大于或等于原值的最小整數(shù)值; Round,每個坐標(biāo)值四舍五入取最接近的整數(shù)值; Truncate,每個坐標(biāo)值取小于或等于原值的最大整數(shù)值。,Size結(jié)構(gòu),Size結(jié)構(gòu) 用于定義Windows窗體應(yīng)用程序中的窗口、控件和其他矩形區(qū)域的大小。 具有寬度值Width和高度值He
5、ight屬性,也可以使用IsEmpty屬性來檢測Size是否為空。 初始化方法 直接指定高度值和寬度值,Size b = Size( 50,100 ); 通過一個Point變量來初始化, Size a = Size(Point(100,20) ); 判斷兩個Size變量是否相等可以使用其Equals方法,如 size1.Equals( size2 ); SizeF結(jié)構(gòu)與Size結(jié)構(gòu)類似PointF結(jié)構(gòu)與Point結(jié)構(gòu)。,Rectangle結(jié)構(gòu),Rectangle結(jié)構(gòu) 保存一個矩形區(qū)域的位置和大小,包含有X、Y、Width、Height、Size屬性,還有Top、Bottom、Left、Righ
6、t等屬性返回各邊坐標(biāo)值。 Rectangle的初始化 指定一個Point值和Size值,如 Rectangle c = Rectangle( point1,size1); 直接指定矩形位置、寬度和高度值,前兩個參數(shù)指定了矩形左上角的XY坐標(biāo)值,后兩個參數(shù)指定矩形的寬度和高度。如 Rectangle d = Rectangle( left1, top1, width1, height1); 包含的一些方法 Contains方法:確定一個矩形或一個點是否在當(dāng)前矩形區(qū)域內(nèi)。參數(shù)類型可以是Point結(jié)構(gòu),Rectangle結(jié)構(gòu)和點坐標(biāo)值。 Union方法:求兩個矩形的并集。參數(shù)是兩個要求并集的矩形,返
7、回一個包含其并集的Rectangle結(jié)構(gòu)。,Rectangle結(jié)構(gòu),Intersect方法:求兩個矩形的交集。參數(shù)為兩個求交的矩形,則返回一個表示其交集的Rectangle結(jié)構(gòu);參數(shù)為一個矩形,則獲得當(dāng)前矩形與參數(shù)矩形的交集Rectangle,用這個結(jié)果替換當(dāng)前矩形。 可以直接對Rectangle變量進(jìn)行等于=或不等于!=操作。 正在繪制或操作一個控件的工作區(qū)時,常常使用Rectangle結(jié)構(gòu)。 窗體的工作區(qū)是位于標(biāo)題欄(或有菜單欄)下面,且在窗體邊界內(nèi)部的控件的一部分。Form類中有一個ClientRectangle屬性,用于獲取工作區(qū)的位置。如, Rectangle myRect = Cl
8、ientRectangle; 這里需要注意,狀態(tài)欄雖然覆蓋了工作區(qū),但并沒有減少工作區(qū)的總大小。在計算一個窗體的可視區(qū)域時,要將工作區(qū)的大小值減去狀態(tài)欄的大小。 RectangleF結(jié)構(gòu):使用SizeF結(jié)構(gòu)和PointF結(jié)構(gòu)。,Graphics對象,在傳統(tǒng)的Windows窗口中,使用Device Context,即設(shè)備上下文,來進(jìn)行繪圖操作;而在.NET框架的Windows窗體中則使用繪圖對象進(jìn)行繪圖操作。 使用System:Drawing命名空間中的Graphics類封裝GDI+的繪圖對象,在Windows窗體中的所有繪圖操作(包括顯示文字)都必須通過這個類來進(jìn)行。Graphics類相當(dāng)于M
9、FC中的CDC類。 要使用Graphics進(jìn)行繪圖,首先必須獲得它的對象實例或是創(chuàng)建一個Graphics對象。最常用的方法是可以通過窗體的Paint事件來獲取對象實例,創(chuàng)建對象則通過CreateGraphics方法。,Graphics對象,Graphics類提供的許多繪圖方法有: Clear方法:使用一種指定的顏色填充整修繪圖表面。例如, Graphics g = this-CreateGraphics; g-Clear( this-BackColor ); /用當(dāng)前控件的背景色填充 繪制方法,一般都有多個重載,第一個參數(shù)一般都是繪制畫筆Pen類型: DrawClosedCurve:繪制閉合曲
10、線; DrawCurve:繪制曲線; DrawImage:繪制圖像;這里沒有使用Pen類型的參數(shù),第一個Image參數(shù)指定要繪制的圖像,第二個及之后的參數(shù)指定繪制的位置。 DrawLine:繪制直線;第二個及之后的參數(shù)是兩個點的表示。 DrawString:在指定位置以指定字體顯示字符串。 DrawRectangle和DrawRectangles:繪制一個或多個矩形。,Graphics對象,填充方法,一般都有多個重載,第一個參數(shù)一般都是填充畫刷Brush類型: FillRectangle:填充矩形;第二個參數(shù)可以是一個矩形結(jié)構(gòu)或者其他可表示矩形的方式(如Point+Size)。 FillClo
11、sedCurve:填充閉合曲線; FillRegion:填充一個區(qū)域。兩個參數(shù),第一個指定填充使用的畫刷(Brush類型),第二個指定填充區(qū)域(Region類型)。 FromImage方法:從參數(shù)指定的Image對象創(chuàng)建一個新的Graphics對象。 GetHDC方法:返回與Graphics相關(guān)聯(lián)的設(shè)備句柄。 ReleaseHDC方法:釋放設(shè)備句柄。,顏色Color,.NET框架中的顏色基于4種成分。除了三原色紅、綠、藍(lán)外,還有第4種稱為alpha的值用于指定顏色的透明度。其中每個成分都是一個字節(jié),在0255之間取值。 在GDI+中,用值類型Color結(jié)構(gòu)來表示顏色。在類和方法中要使用顏色的時
12、候,它們都需要Color結(jié)構(gòu)的一個實例。Color結(jié)構(gòu)中預(yù)定義了141種顏色,它們都使用靜態(tài)屬性來表示。 其中有一種Transparent顏色,其alpha成分設(shè)置為0,表示透明顏色 創(chuàng)建Color對象實例的方法 1. 創(chuàng)建Color實例最簡單的方法就是通過一個靜態(tài)屬性來返回。如,Color newColor = Color:Red; 2. 可以使用默認(rèn)的構(gòu)造函數(shù)來創(chuàng)建Color實例,但是所產(chǎn)生的Color對象是純黑色的,并且不能修改為其他顏色。,顏色Color,3. 通過調(diào)用FromArgb靜態(tài)方法,它有4種版本。 Color sky = Color:FromArgb( 100, 200,
13、200, 255 ); 參數(shù)依次表示alpha成分,紅,綠,藍(lán)。 Color sky = Color:FromArgb( 200, 200, 255 ); 這里缺省了alpha成分,它隱式地設(shè)置為它的最大值,生成一種完全不透明的顏色。 Color sky = Color:FromArgb( 100, Color:Blue ); 這里使用一個現(xiàn)有的Color對象實例,只是修改了alpha成分的值。 Color sky = Color:FromArgb( 0 x64C8C8FF ); 使用一個形式為AARRGGBB的組合整數(shù)。,顏色Color,4. 通過調(diào)用FromKnownColor靜態(tài)方法,參
14、數(shù)為KnownColor枚舉類型的值。如 Color sky = Color:FromKnownColor(KnownColor:Blue); KnownColor枚舉類型:其值包含了Color結(jié)構(gòu)的所有141種顏色以及SystemColors類的26種顏色。 5. 通過調(diào)用FromName靜態(tài)方法,參數(shù)是一個字符串,這個字符串必須是KnownColor枚舉值的名稱。如,Color sky = Color:FromName( “Blue” ); Color屬性 具有4個只讀屬性,可以用于提取顏色的各種成分 A,返回顏色的alpha成分; R,紅色成分;G,綠色成分;B,藍(lán)色成分。,顏色Colo
15、r,其他有用的非靜態(tài)屬性 IsNamedColor,判斷顏色值是否在140個命名顏色中; IsKnownColor,判斷顏色值是否KnownColor枚舉的顏色; IsSystemColor,判斷顏色值是否SystemColor類的屬性值。 Windows系統(tǒng)使用一些系統(tǒng)范圍的顏色,如活動邊框的顏色和標(biāo)題欄顏色等。.NET框架為這些系統(tǒng)顏色提供了一個封裝類SystemColors。 各種系統(tǒng)顏色以靜態(tài)屬性的形式保存在這個類中,可以直接通過類名來引用。具體系統(tǒng)顏色見表。,使用字體,在窗體或控件中都包含有Font屬性,表示窗體或控件當(dāng)前使用的字體。在窗體或控件創(chuàng)建時,會使用系統(tǒng)的默認(rèn)字體值。 字體
16、使用Drawing:Font類封裝,通過創(chuàng)建這么個類的實例可以創(chuàng)建新的字體。 在創(chuàng)建時需要指定字體的名稱、大小和風(fēng)格,如果不指定字體風(fēng)格則將創(chuàng)建常規(guī)字體。 Font構(gòu)造函數(shù) 下面語句創(chuàng)建一個12磅的粗體隸書字體。 Font font1 = gcnew Font(“隸書”,12, FontStyle:Bold); 下面語句使用指定的度量單位而不是磅值來創(chuàng)建字體 Font font2 = gcnew Font(“隸書”,12, GraphiUnit:Document); 組合前兩個構(gòu)造函數(shù) Font font3 = gcnew Font(“隸書”,12, FontStyle:Bold, Graph
17、iUnit:Document);,使用字體,GraphicsUnit枚舉類型,用于指定給定數(shù)據(jù)的度量單位。 Display,將 1/75 英寸指定為度量單位。 Document,將文檔單位(1/300 英寸)指定為度量單位。 Inch,英寸。 Millimeter,毫米。 Pixel,設(shè)備像素。 Point,打印機(jī)點(1/72 英寸)。 World,通用單位。 .NET框架中字體風(fēng)格使用FontStyle枚舉類型定義。其值有以下一些,它們可以組合使用: Bold:設(shè)置字體風(fēng)格為粗體; Italic:設(shè)置字體風(fēng)格為斜體; Regular:常規(guī)字體; Strikeout:字體帶刪除線; Under
18、line:字體帶下劃線。,使用字體,一個字體所具有的屬性是只讀的,修改任何一個屬性都將產(chǎn)生一個新的字體。最常用屬性有: Bold,字體是否為粗體; FontFamily,F(xiàn)ontFamily枚舉值,確定字體的字符集; Height,字體高度; Italic,字體是否為斜體; Size,字體大小; SizeInPoints,字體的磅值,不考慮當(dāng)前的Unit屬性設(shè)置; Strikeout,字體是否有刪除線; Style,應(yīng)用于這個字體的所有FontStyle枚舉值; Underline,字體是否有下劃線; Unit,GraphicsUnit枚舉值,確定Height、Width和Size屬性使用的單
19、位。 字體示例程序,使用畫筆,用Pen類型封裝,用于繪制圖形??梢允褂眠@個類來創(chuàng)建一個指定顏色、默認(rèn)寬度的畫筆對象。 構(gòu)造函數(shù) Pen penRed = gcnew Pen(Color:Red); 這里通過參數(shù)指定畫筆顏色,初始寬度默認(rèn)為1。 Pen PenRed = gcnew Pen(Color:Red, 10); 參數(shù)指定畫筆顏色和寬度。 Pen PenRed = gcnew Pen(brushRed); 參數(shù)中使用畫刷對象來指定畫筆的模式。 Pen PenRed = gcnew Pen(brushRed, 5); 參數(shù)中使用畫刷來指定畫筆模式,同時指定寬度。,使用畫筆,Pen類型可以動
20、態(tài)修改屬性,改變屬性時不必重新創(chuàng)建Pen對象。Pen類常用屬性有: Alignment,指定Pen對象的對齊方式;是一個PenAlignment枚舉值。 Brush,獲取或設(shè)置用于確定此 Pen對象的屬性的 Brush對象 ; Color,獲取或設(shè)置畫筆顏色; EndCap,指定線條末端出現(xiàn)的形狀。這是一個LineCap枚舉值,默認(rèn)為LineCap:Flat。 LineJoin,指定此 Pen對象繪制的兩條連續(xù)直線終點之間的聯(lián)接樣式。這是一個LineJoin枚舉值。 PenType,獲取用此 Pen對象繪制的直線的樣式,是一個 PenType枚舉值。 StartCap,指定線條起點出現(xiàn)的形狀。
21、默認(rèn)為LineCap:Flat。 Width,獲取或設(shè)置畫筆繪制的線條的寬度。,使用畫筆,一些枚舉類型(System:Drawing:Drawing2D 命名空間 ) PenAlignment枚舉類型:指定相對于理論上、零寬度的線條的 Pen對象的對齊方式。畫筆寬度的中點根據(jù)這個枚舉值相對于所繪制的線條對齊 。 Center,在線條邊界的中間畫直線。 Inset,在構(gòu)成一條曲線或者一個圖形邊界的線條內(nèi)部畫直線。 Left,指定被定位于所繪制的線條的左側(cè)。 Outset,指定被定位于所繪制的線條的外側(cè)。 Right,指定被定位于所繪制的線條的右側(cè)。 LineCap枚舉類型:用于指定如何繪制線條的
22、端點。 AnchorMask,一個掩碼值,測試LineCap值是否指定了一個錨頭帽。 ArrowAnchor,指定箭頭狀錨頭帽;DiamondAnchor,指定菱形錨頭帽。 Custom,指定自定義線帽。 Flat,不畫帽,默認(rèn)值;NoAnchor,沒有錨,與Flat有同樣的效果。 Round,指定圓線帽;RoundAnchor,指定圓錨頭帽。 Square,指定方線帽;SquareAnchor,指定方錨頭帽。 Triangle,指定三角線帽。,使用畫筆,LineJoin枚舉類型:指定如何連接連續(xù)的線條。 Bevel,指定成斜角的聯(lián)接。這將產(chǎn)生一個斜角。 Miter,指定斜聯(lián)接。擴(kuò)展線條的外界
23、,直到它們相接觸。 MiterClipped,指定斜聯(lián)接。這種方式要受Pen類的MiterLimit屬性的限制。 Round,指定圓形聯(lián)接。這將在兩條線之間產(chǎn)生平滑的圓弧。 PenType枚舉類型:指定用來填充線條的 Pen對象填充類型 。 HatchFill,指定陰影填充。 LinearGradient,指定線性漸變填充。 PathGradient,指定路徑漸變填充。 SolidColor,指定實填充。 TextureFill,指定位圖紋理填充。,使用畫筆,Pen類的DashStyle屬性:設(shè)置或獲取畫筆的風(fēng)格。其屬性值在System:Drawing:Drawing2D命名控件中的DashS
24、tyle枚舉類型中定義。可取值有: Custom:自定義風(fēng)格; Dash:劃線, DashDot:劃線點, DashDotDot:劃線點點, Dot:點線, Solid:實線,,使用畫筆,SystemPens類 Windows系統(tǒng)顏色畫筆,用于創(chuàng)建與用戶界面和系統(tǒng)顏色相匹配的筆。它的每個靜態(tài)屬性都返回一個Pen對象。 下面這行語句創(chuàng)建一個Pen對象,將它初始化為用戶加亮顯示文本時首選的顏色。 Pen highlightPen = SystemPens:HighlightText; SystemPens的一些靜態(tài)屬性 Control,控件背景顏色; ActiveCaptionText,活動窗口標(biāo)
25、題欄的文本顏色; HighlightText,加亮顯示的文本顏色; WindowText,窗口的文本顏色; WindowFrame,窗口的圖文框顏色。,使用畫筆,FromSystemColor靜態(tài)方法:可以根據(jù)作為參數(shù)傳遞給這個方法的一個Color值來創(chuàng)建畫筆。如, Pen pen1 = gcnew SystemPens:FromSystemColor(SystemColors:Window); 從SystemPens類得到的所有Pen的引用都是1個像素的默認(rèn)寬度,對它們不能進(jìn)行修改。如果要使用可選擇寬度或類型的畫筆,只能使用Pen類來創(chuàng)建。 Pens類 提供了很多預(yù)定義顏色的畫筆對象,它們以
26、靜態(tài)屬性的形式保存。例如要創(chuàng)建一個紅色畫筆,可以調(diào)用Pens :Red屬性。如,Pen pen1 = Pens:Red; Pens類中顏色命名規(guī)則與Color類中相同,知道顏色名字則可以直接調(diào)用。,使用畫刷,顯示文字時除了指定字體外,還要指定畫刷,另外在圖形的填充時也需要使用畫刷,同時畫筆也可以基于畫刷來創(chuàng)建。 使用Brush類表示,這是一個抽象類,不能直接用來創(chuàng)建畫刷實例。在.NET框架中提供了一些派生類,可以使用它們來創(chuàng)建畫刷對象。 在System:Drawing命名空間中定義了兩個最基本的畫刷:SolidBrush和TextureBrush。其他的3種用于更高級的效果,在System:D
27、rawing:Drawing2D命名空間中可以找到。 SolidBrush類,使用一種純色來填充區(qū)域; 創(chuàng)建方法 SolidBrush skyBrush =gcnew SolidBrush(Color:Blue); 只有一個Color屬性,用于獲取或設(shè)置畫刷顏色。,使用畫刷,TextureBrush類,使用一個圖像來填充區(qū)域; 可以使用整個圖像或者僅僅是圖像的一部分來構(gòu)造畫刷;也可以旋轉(zhuǎn)或按比例調(diào)整整個圖像來滿足要求。 構(gòu)造方法:最簡單的就是傳入一個圖像。如, TextureBrush br = gcnew TextureBrush(“C:image1.bmp”); 支持多種圖像格式(bmp,
28、gif,jpeg等)。 常用屬性 WrapMode,指定這個畫筆的換行模式。這是個WrapMode枚舉值。 WrapMode枚舉類型:用于確定這個畫刷填充區(qū)域的方式。 Clamp,不平鋪,畫刷圖像只顯示一次。 Tile,默認(rèn)值,平鋪畫刷圖像填充整個區(qū)域。 TileFlipX,平鋪畫刷圖像填充整個區(qū)域。每隔一列水平反轉(zhuǎn)這個圖像。 TileFlipY,平鋪畫刷圖像填充整個區(qū)域。每隔一行垂直反轉(zhuǎn)這個圖像。 TileFlipXY,結(jié)合上兩個枚舉值的行為。,使用畫刷,HatchBrush類,用預(yù)定義的陰影圖案來填充區(qū)域; 每種陰影模式由兩種顏色組成:背景和前景。可以通過這個畫刷類來指定這兩種顏色和陰影模
29、式的類型。 LinearGradientBrush類,用一個線性漸變區(qū)來填充區(qū)域; 這個畫刷使用從一種色調(diào)漸變到另一種色調(diào)的顏色填充區(qū)域。這里畫刷中保存了進(jìn)行漸變的兩種顏色。 PathGradientBrush類,用一個路徑漸變區(qū)來填充區(qū)域。 使用一組漸變的顏色來填充區(qū)域。與LinearGradientBrush類不同的是,這個畫刷為漸變區(qū)提供了更靈活的形狀。,使用畫刷,標(biāo)準(zhǔn)畫刷Brushes類 包含了所有標(biāo)準(zhǔn)顏色的畫刷,Color類中每一個預(yù)定義的顏色都在這個類中有一個對應(yīng)的畫刷。這些標(biāo)準(zhǔn)畫刷以靜態(tài)屬性保存在Brushes類中,可以直接引用。 例如,Brush brushRed = Brus
30、hes:Red; 系統(tǒng)顏色畫刷SystemBrushes類 對應(yīng)Windows的系統(tǒng)顏色,這些畫刷也做為靜態(tài)屬性在SystemBrushes類中保存。,顯示文字,Windows窗體程序中文字的顯示通過Graphics類的DrawingString方法進(jìn)行。 調(diào)用這個方法時要指定顯示的字符串、使用的字體、使用的畫刷以及顯示的位置。 可以通過創(chuàng)建豐富多彩的畫刷來實現(xiàn)文字的特效顯示。 代碼示例 Image img = Image:FromFile(“sample.jpg”); TextureBrush tb = gcnew TextureBrush(img); Font f = gcnew Font
31、(“隸書”, 72); Graphics gg = e-Graphics; gg-DrawString( “VS2005”, f, tb, 10, 80 ); 可以使用StringFormat類型對象來改變文字顯示方向,作為一個參數(shù)放在位置參數(shù)后面。 設(shè)置這個類的FormatFlags屬性,其值由StringFormatFlags枚舉定義。,顯示文字,StringFormat類為DrawString和其他方法指定文本布局的選項。 具有用于控制格式選項的屬性,常見的有: Alignment,指定水平的文本的對齊方式。是一個StringAlignment枚舉值。 FormatFlags,指定格式化
32、信息。是一個StringFormatFlags枚舉值。 LineAlignment,指定垂直文本(也就是行)的對齊方式。是一個StringAlignment枚舉值。 StringAlignment枚舉類型:指定文本字符串相對于其布局矩形的對齊方式 。 Center,指定文本在布局矩形中居中對齊。 Far,指定文本遠(yuǎn)離布局矩形的原點位置對齊。在左到右布局中,遠(yuǎn)端位置是右。在右到左布局中,遠(yuǎn)端位置是左。 Near,指定文本靠近布局對齊。在左到右布局中,近端位置是左。在右到左布局中,近端位置是右。,顯示文字,StringFormatFlags枚舉類型:指定文本字符串的顯示和布局信息 ,可以組合使用。
33、 DirectionRightToLeft,指定文本從右到左排列。 DirectionVertical,指定文本垂直排列。 DisplayFormatControl,作為格式符號,顯示指定的格式字符。 FitBlackBox,指定任何標(biāo)志符號的任何部分都不突出邊框。在默認(rèn)情況下,需要在邊緣處可見時,一些標(biāo)志符號會稍微突出邊框。例如,在 一些字體中,當(dāng)小寫斜體的 f 與邊框的最左邊對齊時,f 的下半部分會稍微突出到邊框左邊緣之左。設(shè)置此標(biāo)記將確保任何繪圖都不會超出邊框,但是將導(dǎo)致文本的相鄰行的對齊邊緣看上去不齊。,顯示文字,LineLimit,在格式化的矩形中只布置整行。默認(rèn)情況下,這種布置要繼
34、續(xù)到文本的結(jié)尾為止,或者到由于剪輯而不再有可見的行為止,看哪一種情況先發(fā)生。注意,此默認(rèn)設(shè)置允許不是行高整數(shù)倍的格式化矩形將最后一行部分地遮住。若要確保看到的都是整行,請指定此值,并仔細(xì)地提供格式化矩形,使其高度至少為一個行高。 。 MeasureTrailingSpaces,在默認(rèn)情況下,MeasureString方法返回的邊框都將排除每一行結(jié)尾處的空格。設(shè)置此標(biāo)記以便在測定時將空格包括進(jìn)去 NoClip,允許顯示標(biāo)志符號的伸出部分和延伸到邊框外的未換行文本。在默認(rèn)情況下,延伸到邊框外側(cè)的所有文本和標(biāo)志符號部分都被剪裁。 NoFontFallback,對于請求的字體中不支持的字符,禁用回退到
35、可選字體。缺失的任何字符都用缺失標(biāo)志符號的字體顯示,通常是一個空的方塊。 NoWrap,在矩形中進(jìn)行格式化時禁用文本換行。當(dāng)傳遞的是點而不是矩形時,或者指定的矩形行長為零時,已隱含此標(biāo)記。,顯示圖像,使用Image類封裝基本的圖像操作。 Image類是個抽象基類,不能直接用來創(chuàng)建對象實例。提供了幾個靜態(tài)方法用來從文件中載入圖像,如FromFile和FromStream方法,支持多種圖像文件格式(bmp、jpg和gif等) .NET框架提供了幾個派生類,可以用于創(chuàng)建對象實例 Bitmap類:封裝了GDI+位圖(.bmp文件格式),可以使用這個類來操作位圖。 創(chuàng)建位圖實例時,可以指定位圖文件路徑名
36、,創(chuàng)建的新對象就會自動裝入位圖,然后可以調(diào)用Graphics類的DrawImage方法來顯示位圖。 Bitmap bmp = gcnew Bitmap(“sample.jpg”); this-CreateGraphics() -DrawImage(bmp, 100,100 );,顯示圖像,可以在顯示圖像時進(jìn)行縮放操作。比如說可以使用一個Rectangle變量來指定位圖位置和大小。 Rectangle rec = gcnew Rectangle(10, 10, 100, 100); this-CreateGraphics() -DrawImage(bmp,rec); 可以只顯示部分位圖。比如說切取位圖的左上角一塊然后在目標(biāo)矩形變量中顯示。 Clone方法:復(fù)制位圖; GetPixel和SetPixel方法:獲取或設(shè)置位圖中特定像素的顏色; SetResolution方法:重新設(shè)置位圖大?。?MakeTransparent方法:把
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小兒急性喉炎的快速診斷與治療策略
- 二零二五年度建筑工程施工與工程結(jié)算借款合同3篇
- 2025年度熟食文化節(jié)參展商贊助合同范本3篇
- 2025年度電子廢物回收處理服務(wù)合同3篇
- 2025年上外版九年級科學(xué)下冊階段測試試卷
- 2024食品行業(yè)員工保密協(xié)議及離職后保密及競業(yè)限制合同3篇
- 家庭教育心理學(xué)在商業(yè)育兒領(lǐng)域的應(yīng)用
- 2024水利工程安全生產(chǎn)與風(fēng)險管理協(xié)議
- 卷6-2021-2022學(xué)年下學(xué)期高一地理期末考試綜合拉練卷(原卷版)
- 河北機(jī)電職業(yè)技術(shù)學(xué)院《城市規(guī)劃GIS》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 反邪教課件大學(xué)
- 2024年-2025年全民“科學(xué)素養(yǎng)提升行動”競賽考試題庫(含各題型)
- 實習(xí)護(hù)士匯報
- 4R危機(jī)管理理論
- FANUC機(jī)器人培訓(xùn)教程(完成版)
- 中醫(yī)診療技術(shù)操作規(guī)程
- 樂理知識考試題庫130題(含答案)
- 2024年《多媒體技術(shù)與應(yīng)用》 考試題庫及答案
- (完整)北京版小學(xué)英語1至6年級詞匯(帶音標(biāo))
- 終止合同告知函 委婉
評論
0/150
提交評論