在查看System.Drawing.Font类的构造函数时,有一个参数传递给System.Drawing.FontStyle枚举中定义的FontStyles之一。
即。 胆大 斜体 定期 下划线
在实例化对象中有Bold,Italic,Underline等布尔属性,但它们是只读的。
如果我想将我的字体定义为具有Bold和Underline等多种样式,该怎么办?
我该怎么做?
答案 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);