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

时间:2010-05-11 17:53:33

标签: c# asp.net system.drawing

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

即。     胆大     斜体     定期     下划线

在实例化对象中有Bold,Italic,Underline等布尔属性,但它们是只读的。

如果我想将我的字体定义为具有Bold和Underline等多种样式,该怎么办?

我该怎么做?

3 个答案:

答案 0 :(得分:35)

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

例如,如果您想要粗体和下划线,则传递

FontStyle.Bold | FontStyle.Underline

竖线(|)是二元OR运算符。

答案 1 :(得分:10)

在Font构造函数中,您可以使用OR运算符组合多个FontStyles:

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

答案 2 :(得分: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);