使字体斜体和粗体

Tom*_*len 27 c# fonts

如何将多种字体样式应用于文本?

System.Drawing.Font MyFont = new System.Drawing.Font(
    thisTempLabel.LabelFont,
    ((float)thisTempLabel.fontSize),
    FontStyle.Bold + FontStyle.Italic,    // + obviously doesn't work, but what am I meant to do?
    GraphicsUnit.Pixel
);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

usr*_*ΛΩΝ 46

System.Drawing.Font MyFont = new System.Drawing.Font(
    thisTempLabel.LabelFont,
    ((float)thisTempLabel.fontSize),
    FontStyle.Bold | FontStyle.Italic,    // + obviously doesn't work, but what am I meant to do?
    GraphicsUnit.Pixel
);
Run Code Online (Sandbox Code Playgroud)

也许你想使用OR运算符(|)

  • @Tom - 它是一个"按位OR"运算符.FontStyles枚举的基础值(必须具有`[Flags]`属性)旨在以这种方式组合. (5认同)
  • 这似乎工作谢谢!我不明白它的逻辑吗? (2认同)
  • 枚举基本上是整数.正如汉斯所说,有一些特殊的枚举用[Flags]属性标记,因此每个值的二进制表示只有一个1(对于我帖子中的所有文字游戏而言...)和全部为0,并且没有其他值在该位置有1.因此,bitwising ANDing和ORing会保留所有选定值的信息.当后端读取值时,它会通过将其与要测试的值进行AND运算来测试标志的"激活"(所以if(value && FontStyle.italic)renderItalic(),类似于此) (2认同)
  • @dj @hans,啊啊好吧!因此,字体样式的枚举将类似于 0000,然后每种样式类似于 1000 0100 0010 0001,我们将它们全部组合起来形成 1111,以便将所有样式设置为 true,对吧? (2认同)

ano*_*ery 10

FontStyle 是一个标志枚举,因此您可以通过以下方式设置多个样式:

FontStyle.Bold | FontStyle.Italic
Run Code Online (Sandbox Code Playgroud)


Gor*_*son 5

我认为这是 FontStyle.Bold | 字体样式.斜体

您通常使用管道(按位或)符号来组合这些函数中的多个标志

这一页解释了它

http://www.blackwasp.co.uk/CSharpLogicalBitwiseOps_2.aspx