代码之家  ›  专栏  ›  技术社区  ›  etoisarobot

如何在实例化字体时设置多个字体样式?

  •  15
  • etoisarobot  · 技术社区  · 15 年前

    在查看System.Drawing.Font类的构造函数时,有一个参数要传入System.Drawing.FontStyle枚举中定义的一个FontStyle。

    IE. 大胆的 斜体字 规则的 下划线

    在实例化的对象中,有粗体、斜体、下划线等布尔属性,但它们是只读的。

    如果我想将字体定义为具有多种样式,如粗体和下划线,该怎么办?

    我该怎么做?

    3 回复  |  直到 15 年前
        1
  •  34
  •   Adam Robinson    15 年前

    这个 FontStyle 枚举是 Flags 枚举。这意味着它的成员都是二的幂,允许您使用二进制或组合它们。

    例如,如果你想要粗体和下划线,你可以通过

    FontStyle.Bold | FontStyle.Underline
    

    垂直条( | )是二进制或运算符。

        2
  •  10
  •   Paul Kearney - pk    15 年前

    在字体构造函数中,可以使用或运算符组合多个字体样式:

    Font font = new Font(this.Font, FontStyle.Bold | FontStyle.Underline);
    
        3
  •  0
  •   Sofia Siw    11 年前

    您可以使用类似的方法,以避免每种情况下出现多个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);