1. 程式人生 > >Graphics 和 Matrix 使用註意

Graphics 和 Matrix 使用註意

graphics 和 matrix 使用註意

Graphics 可以進行畫圖,Matrix 可以對畫布內容進行變換

Font font = new Font("宋體", 1F);
//檢測字符串大小
SizeF sizeF = CreateGraphics().MeasureString("abc", font);
//displayWidth為實際顯示寬度,通過此方式將字體變大
float disX =(float)(displayWidth / sizeF.Width);
float disY = (float)(displayHeight / sizeF.Height);
 
Matrix matrix = new Matrix();
//對畫布內容進行放大
matrix.Scale(disX, disY);
//這裏用在panel上生成一個畫布
Graphics g = this.drawingPanel.CreateGraphics();
g.Transform = matrix;
//這裏是畫布的顯示位置,這裏註意x,y的位置是相對於panel左上角的,且註意在進行Matrix 變換後,
//1像素的單位已經放大為disX,所以這裏要除以 disX 求得實際像素距離
float x = (float)locationX / disX;
float y = (float)locationY / disY;
//
g.DrawString("abc", font, color, new RectangleF(x, y, (float)displayWidth, (float)displayHeight));


Graphics 和 Matrix 使用註意