Graphics 和 Matrix 使用註意
阿新 • • 發佈:2017-06-20
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 使用註意