System.Drawing:如何控制字体粗细?

时间:2009-03-05 23:51:29

标签: c# .net system.drawing

我发现即使我是通过win32 pinvoke创建它也无法改变字体粗细。我正在使用Graphics.DrawString来使用该字体。我很难过,在这上面找不到任何东西。

[DllImport("gdi32.dll")]
static extern IntPtr CreateFont(int nHeight, int nWidth, int nEscapement,
   int nOrientation, int fnWeight, uint fdwItalic, uint fdwUnderline, uint
   fdwStrikeOut, uint fdwCharSet, uint fdwOutputPrecision, uint
   fdwClipPrecision, uint fdwQuality, uint fdwPitchAndFamily, string lpszFace);

private void CreateLabelFont()
{
    // Remove -13 magic number later.
    IntPtr hFont = CreateFont(-13, 0, 0, 0, 100, 0, 0, 0, 1, 0, 0, 0, 0, "Arial\0");
    labelFont = Font.FromHfont(hFont);
}

1 个答案:

答案 0 :(得分:1)

来自CreateFont的MSDN参考:

  

fnWeight [in]       指定字体的权重,范围为0到1000.例如,400表示正常,700表示粗体。如果此值为零,则使用默认权重。

这意味着您在创建字体时修复了重量。如果您需要不同的字体权重,则必须多次调用CreateFont