如何擷取字串的像素尺寸?

來源:互聯網
上載者:User
字串 CSDN 新首頁的全部內容目前都是手工更新的,工作量很大,原因之一是為了裁減文章的標題,以便不出現超長換行的狀況。

本來可以在程式中控制標題寬度的,超過的話自動截斷並用 tooltip 的形式顯示全標題,但是因為 CSDN 首頁採用的字型是 Tahoma 12px,英文字型不是等寬的,因此難以確定寬度。

一直以來沒動腦筋想解決辦法,昨天開會,關於頁面維護工作量過大的意見再次被提出,因此某些欄目的內容勢必需要自動更新,因此標題需要自動截斷。

於是我需要獲得字串的尺寸,像素單位。

.NET 的 System.Drawing 空間中,Graphics 對象提供了能達到此目的的方法:MeasureString(),其重載資訊參見 MSDN。

昨晚實驗的取得字串長度的程式碼片段如下:
private void MainForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e){ Font font = new Font("Tahoma", 11, GraphicsUnit.Pixel); SizeF size = e.Graphics.MeasureString(drawText, font); this.Text = size.Width.ToString(); e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, size.Width, size.Height); e.Graphics.DrawString(drawText, font, Brushes.Black, new PointF(0, 0));}


目前感覺取得的寬度像素值略大於理論值。明天繼續完善之~



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。