2010-05-11 62 views
14

在查看System.Drawing.Font類的構造函數時,需要在System.Drawing.FontStyle枚舉中定義的FontStyles之一中傳入一個參數。如何在實例化字體時設置多個FontStyles?

即。 粗體斜體 定期 下劃線

而且有粗體,斜體,下劃線等布爾屬性的實例化對象,但它們是隻讀的。

如果我想定義我的字體具有多種樣式,如粗體和下劃線,該怎麼辦?

我該怎麼做?

回答

31

FontStyle枚舉是一個Flags枚舉。這意味着它的成員都是二的權力,允許你使用一個二進制OR來組合它們。

舉例來說,如果你要大膽和下劃線,你會通過

FontStyle.Bold | FontStyle.Underline 

豎線(|)是二進制或運算。

+0

曾任職非常感謝你!這些類型的東西對於我們Java的愛好者來說都是新概念。 – anon58192932 2012-10-16 22:00:53

10

在字體構造器,你可以結合使用OR運算符的多個FontStyles:

Font font = new Font(this.Font, FontStyle.Bold | FontStyle.Underline); 
0

你可以使用這樣的事情,爲了避免多次IFS每個案例:

//define a font to use. 
Font font; 

font = new Font(fontname, fontsize, GraphicsUnit.Pixel); 

if (bold) 
    font = new Font(font, font.Style^FontStyle.Bold); 
if (italic) 
    font = new Font(font, font.Style^FontStyle.Italic); 
if (underline) 
    font = new Font(font, font.Style^FontStyle.Underline); 
if (strikeout) 
    font = new Font(font, font.Style^FontStyle.Strikeout); 
+0

這是非常低效的......使用標誌枚舉一次設置多個樣式。 – Tim 2015-08-11 14:51:08