GDI 和自定義控制項(一)

2021-04-02 18:15:58 字數 1680 閱讀 1862

1:gdi+概述

1.1:gdi+和.net的關係

gdi+是mircrosoft新的.net framework的類庫。用於圖形程式設計。它是.net framework的一部分。gdi+被組織到六個命名空間中,所有的這些命

名空間都包含在dll檔案system.drawing.dll中。

1.2:gdi+和gdi的關係

gdi+是基於gdi的。gdi是windows api中處理圖形的部分,gdi+是gdi的包裝器。封裝為類之後,使得圖形程式設計避免了直接使用api的困難,並且

具有了更多的物件導向的思想。

1.3:gdi+的主要功能:

a:提供了三種繪圖表面:視窗,點陣圖和印表機

b:gdi+提供的工具可以在任何繪圖表面上繪製二維「線框圖」

c:gdi+對文字繪製功能進行了擴充套件(反鋸齒技術)

d:gid+支援點陣圖和影象(可以在任何繪圖表面上讀取影象,繪製影象,也可一建立和繪製影象)

e:gid+支援列印

f:gdi+可以處理各種.net程式(可以用於windows form和asp.net應用程式)

gdi+命名空間:

system.drawing -- 基本的圖形功能

system.drawing.drawing2d -- 高階的圖形功能

system.drawing.imaging -- 高階影象功能

system.drawing.printing -- 列印和列印預覽功能

system.drawing.text -- 高階字型功能

system.drawing.design -- 高階的自定義控制項的設計時支援

2:繪圖表面

2.1:繪圖表面概述:

三種繪圖環境:螢幕上的窗體,傳送到印表機的頁面,記憶體中的點陣圖和影象

對應著三種繪圖表面:基於象素的窗體,影象或者頁面。

繪圖表面 -- 對螢幕上的視窗,印表機上的頁面或者記憶體中的影象的一種基於光柵的抽象。

基於光柵:--

基於向量:--

目前:幾乎所有的裝置都是基於光柵的。常用的方法是:假定圖形是基於適量的(因為向量更加容易描述影象),然後根據需要,採用某種機

制,將向量形式轉換為光柵的形式。

2.2:繪圖表面的特徵

任何繪圖表面都有三個特徵:介面的大小,象素解析度和顏色深度。

a:繪圖表面的大小

繪圖表面的水平象素和垂直象素數目來確定

b:繪圖表面的解析度

使用象素/英吋 或者 點/英吋的形式表示

72dpi表示:一英吋的區域中應該由乙個水平象素為72,垂直象素為72的網格組成。

c:繪圖表面的顏色深度

光柵圖的本質是在格上繪製各個象素來形成影象的。

24色:每個顏色由r,g,b分量表示,每個8位。可包含256*256*256中顏色。

2.3:graphics物件的建立

要想在繪圖表面上繪圖,就必須建立graphics物件,graphics封裝了各種繪圖功能。

不同的繪圖表面,graphics物件的建立不同。

視窗:painteventargs e;

graphics g = e.graphics;

列印頁面:

printteventargs e;

graphics g = e.graphics;

影象:graphics g = graphics.fromimage(bmp);

自定義控制項《一》

view的工作流主要是指measure layout draw,即測量 布局和繪製。案例 做乙個圓形的控制項 public class circleview extends view public circleview context context,attributeset attrs publi...

自定義控制項 一

定義控制項 編寫自己的伺服器控制項從而來補充常用控制項的不足或封裝自己在開發中常用 功能 外觀的控制項 建立自定義控制項 方法一 新建asp.net資料夾 新建類 cs 一般將類設定為public 並指定命名空間 該類 繼承 system.web.ui.webcontrols 或其子類 textbo...

C 自定義控制項和自定義事件

今天在專案開發的過程中,因為好幾個頁面都要用到同乙個分類控制項,就想著把它做成乙個自定義控制項,然後隨託隨用。在網上找了些列子,自定義控制項的寫法不用多說,主要說一下,如何將控制項的事件,封裝到自己定義的控制項的自定義事件裡面。這裡同時也當作對自定義事件的乙個複習吧。首先控制項是乙個由treelis...