System.Drawing.Fontクラスのコンストラクターを見ると、System.Drawing.FontStyle列挙型で定義されているFontStylesの1つを渡すためのパラメーターがあります。
すなわち。太字の斜体の通常の下線
インスタンス化されたオブジェクトには、太字、斜体、下線などのブールプロパティがありますが、これらは読み取り専用です。
太字や下線などの複数のスタイルを持つようにフォントを定義したい場合はどうなりますか?
これどうやってするの?
System.Drawing.Fontクラスのコンストラクターを見ると、System.Drawing.FontStyle列挙型で定義されているFontStylesの1つを渡すためのパラメーターがあります。
すなわち。太字の斜体の通常の下線
インスタンス化されたオブジェクトには、太字、斜体、下線などのブールプロパティがありますが、これらは読み取り専用です。
太字や下線などの複数のスタイルを持つようにフォントを定義したい場合はどうなりますか?
これどうやってするの?
FontStyle
列挙型は列挙Flags
型です。これは、そのメンバーがすべて2の累乗であることを意味し、バイナリORを使用してそれらを組み合わせることができます。
たとえば、太字で下線を付けたい場合は、合格します
FontStyle.Bold | FontStyle.Underline
縦棒(|
)はバイナリOR演算子です。
Fontコンストラクターでは、OR演算子を使用して複数のFontStylesを組み合わせることができます。
Font font = new Font(this.Font, FontStyle.Bold | FontStyle.Underline);
ケースごとに複数のifを回避するために、次のようなものを使用できます。
//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);