標籤:style blog ar color os 使用 sp for strong
1、 使用g.MeasureString()獲得
使用MeasureString測量出來的字元寬度,總是比實際寬度大一些,而且隨著字元的長度增大,貌似實際寬度和測量寬度的差距也越來越大了。查了一下MSDN,找到了下面這個理由:MeasureString 方法旨在與個別字串一起使用,它在字串前後包括少量額外的空格供突出的標誌符號使用。
string str;str = "大";Font f = new Font("SimSun", 7F, System.Drawing.FontStyle.Regular);Graphics g = this.CreateGraphics();//單位為mmg.PageUnit = GraphicsUnit.Millimeter;SizeF sim = g.MeasureString(str, f);
2、使用TextRenderer.MeasureText獲得,提供使用指定尺寸建立文本初始邊框時,使用指定的裝置上下文、字型和格式說明所繪製的指定文本的尺寸(以像素為單位)。
private void MeasureText(PaintEventArgs e) { string str; str = "大家好"; Font f = new Font("SimSun", 7F, System.Drawing.FontStyle.Regular); Size sif = TextRenderer.MeasureText(e.Graphics, str, f, new Size(0, 0), TextFormatFlags.NoPadding); MessageBox.Show((sif.Width / pdi).ToString());}private void print(object sender, PaintEventArgs e){ MeasureText(e);}
黃聰:C#如何通過MeasureString、Graphics擷取字串的像素長度