gdi 畫文字的一些屬性
主要是設定 StringFormat的一些值,
Trimming 主要是在不足以顯示所有文字時,以怎麼樣的方式來顯示文字, 如下(參考1)
StringTrimming 成員
--------------------------------------------------------------------------------
成員名稱 說明
Character 指定將文本修整成最接近的字元。
EllipsisCharacter 指定將文本修整成最接近的字元,並在被修整的行的末尾插入一個省略符號。
EllipsisPath 中心從被修整的行移除並用省略符號替換。這種演算法儘可能多地保留了行中的最後一個由斜杠分隔的段。
EllipsisWord 指定將文本修整成最接近的單詞,並在被修整的行的末尾插入一個省略符號。
None 指定不進行任何修整。
Word 指定將文本修整成最接近的單詞。
========================
FormatFlags 則用來確定如何顯示文字, 具體內容如下(下面這些屬性可以疊加, 通過位元運算就可以了, 參考2);
StringFormatFlags 成員
--------------------------------------------------------------------------------
成員名稱 說明
DirectionRightToLeft 按從右向左的順序顯示文本。
DirectionVertical 文本垂直對齊。
DisplayFormatControl 控制字元(如從左至右標記)隨具有代表性的標誌符號一起顯示在輸出中。
FitBlackBox 允許部分字元延伸該字串的布局矩形。預設情況下,將重新置放字元以避免任何延伸。
LineLimit 在格式化的矩形中只布置整行。預設情況下,這種布置要繼續到文本的結尾為止,或者到由於剪輯而不再有可見的行為止,看哪一種情況先發生。注意,此預設設定允許不是行高整數倍的格式化矩形將最後一行部分地遮住。若要確保看到的都是整行,請指定此值,並仔細地提供格式化矩形,使其高度至少為一個行高。
MeasureTrailingSpaces 包括每一行結尾處的尾隨空格。在預設情況下,MeasureString 方法返回的邊框都將排除每一行結尾處的空格。設定此標記以便在測定時將空格包括進去。
NoClip 允許顯示標誌符號的伸出部分和延伸到邊框外的未換行文本。在預設情況下,延伸到邊框外側的所有文本和標誌符號部分都被剪裁。
NoFontFallback 對於請求的字型中不支援的字元,禁用回退到可選字型。缺失的任何字元都用缺失標誌符號的字型顯示,通常是一個空的方塊。
NoWrap 在矩形內設定格式時,禁用文本換行功能。當傳遞的是點而不是矩形時,或者指定的矩形行長為零時,已隱含此標記。
注意 StringFormatFlags 的一些使用
比如 sf.FormatFlags |= (StringFormatFlags.LineLimit); 是加上 LineLimit屬性
而 sf.FormatFlags &= ~(StringFormatFlags.LineLimit); 則是去掉 LineLimit屬性,
sf.FormatFlags &= (StringFormatFlags.LineLimit); 只顯示 LineLimit屬性
顯示的效果 將會不一樣
<br />Rectangle textRect =<br />Font font =<br />StringFormat sf = StringFormat.GenericTypographic;<br />sf.Alignment = StringAlignment.Center;<br />sf.LineAlignment = StringAlignment.Near;<br />sf.Trimming = StringTrimming.EllipsisCharacter;<br />sf.FormatFlags &= ~(StringFormatFlags.LineLimit);</p><p>using (Brush brush = new SolidBrush(Color.Blue))<br />{<br />g.DrawString(item.Text, font, brush, textRect, sf);<br />}</p><p>
參考1 http://msdn.microsoft.com/zh-cn/library/system.drawing.stringtrimming(VS.80).aspx
參考2 http://msdn.microsoft.com/zh-cn/library/system.drawing.stringformatflags(VS.80).aspx