Graphics 能夠進行畫圖,Matrix 能夠對畫布內容進行變換c#
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));