2011-03-18 149 views
25

如何將多種字體樣式應用於文本?使字體斜體和粗體

System.Drawing.Font MyFont = new System.Drawing.Font(
    thisTempLabel.LabelFont, 
    ((float)thisTempLabel.fontSize), 
    FontStyle.Bold + FontStyle.Italic, // + obviously doesn't work, but what am I meant to do? 
    GraphicsUnit.Pixel 
); 

感謝您的幫助!

+0

是否要將多個字體樣式應用於同一組字符?這怎麼可能?或者您是否想要將不同的字體應用於同一個字詞中的不同字符? – 2011-03-18 10:30:17

+0

@Unmesh,我希望它是斜體和粗體。 – 2011-03-18 10:30:55

+0

好..我現在得到它 – 2011-03-18 10:32:35

回答

42
System.Drawing.Font MyFont = new System.Drawing.Font(
    thisTempLabel.LabelFont, 
    ((float)thisTempLabel.fontSize), 
    FontStyle.Bold | FontStyle.Italic, // + obviously doesn't work, but what am I meant to do? 
    GraphicsUnit.Pixel 
); 

也許你想使用OR運算符(|

+2

這似乎工作謝謝!我不明白它的邏輯? – 2011-03-18 10:31:51

+5

@Tom - 這是一個「按位或運算符」。 FontStyles枚舉的基礎值(必須具有[[Flags]屬性)被設計爲以這種方式組合。 – 2011-03-18 10:34:40

+0

@Hans,謝謝,我想我現在明白了,所以|會評估所有的條件,無論它們中的任何一個是真/假? – 2011-03-18 10:36:20

8

FontStyle是一個標誌枚舉,因此,你可以設置多個樣式:

FontStyle.Bold | FontStyle.Italic 
2

我想你可以從Font類中受益:

/*controlName*/.SelectionFont=new Font(maintext.Font, FontStyle.Italic); 
2

嗨我正在寫一個簡單的文本編輯器,我有同樣的問題,我沒有在互聯網上找到任何有用的東西。 if,else if方法如果表單中有很多按鈕並不是最優的,所以我想爲什麼不採用現有的font.style,並使用|像上面提到的人的符號。我測試了這個代碼,它工作。我從pictureBox中調用這個方法,我點擊。

更新。我發現了一個錯誤。當你取消選擇一種字體時,它將所有其他字體重置爲常規字體。但是結合它們的代碼很有用。

private void ChangeFontStyle(PictureBox p) 
     { 
      if (p == pictureBox1) 
      { 
       if (BClicked) 
       { 
        richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Bold); 
       } 
       else 
       { 
        richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular); 
       } 
      } 
      else if (p == pictureBox2) 
      { 
       if (IClicked) 
       { 
        richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Italic); 
       } 
       else 
       { 
        richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular); 
       } 
      } 
      else if (p == pictureBox3) 
      { 
       if (UClicked) 
       { 
        richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.SelectionFont.Style | FontStyle.Underline); 
       } 
       else 
       { 
        richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular); 
       } 
      } 
     }   

P.S我用圖片框代替按鈕和布爾變量,如BClicked表明是否被激活。

相關問題