前言
這篇文章是 GDI+ 總結系列的第二篇,如果對 GDI+ 的基礎使用不熟悉的朋友可以先看第一篇文章《C# 使用 GDI+ 畫圖》。
需求
需求是要做一個編輯文字的頁面。用戶在網(wǎng)頁端寫文字,文字區(qū)域是個矩形框,用戶可以通過下方的拖動條調節(jié)文字大小。
如下圖:
提交數(shù)據(jù)的時候前端傳文字區(qū)域的左上角和右下角定位給后臺。因為前端的字體大小單位與后端沒什么關系,所以不能直接傳字體大小,也就是后端要根據(jù)矩形區(qū)域以及文字內容來自己推算用什么樣的字體大小合適。
簡單說就是知道文字的矩形區(qū)域,以及文字內容,要讓文字內容根據(jù)矩形區(qū)域大小調整到適合的字體大小能比較合適地填滿這個區(qū)域。
分析&思路
Graphics 類有個 MeasureString 方法,可以用來計算以當前字體寫出來的文字會占據(jù)多少像素。
如下:
// // 摘要: // 測量用指定的 System.Drawing.Font 繪制的指定字符串。 // // 參數(shù): // text: // 要測量的字符串。 // // font: // System.Drawing.Font,它定義字符串的文本格式。 // // 返回結果: // 此方法返回 System.Drawing.SizeF 結構,該結構表示 text 參數(shù)指定的、使用 font 參數(shù)繪制的字符串的大小,單位由 System.Drawing.Graphics.PageUnit // 屬性指定。 // // 異常: // T:System.ArgumentException: // font 為 null。 public SizeF MeasureString(string text, Font font);
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。