使字体斜体和粗体

时间:2011-03-18 10:27:46

标签: 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
);

感谢您的帮助!

5 个答案:

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

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

答案 1 :(得分:9)

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

FontStyle.Bold | FontStyle.Italic

答案 2 :(得分:4)

我认为它是FontStyle.Bold | FontStyle.Italic

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

此页面解释

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

答案 3 :(得分:2)

您好我正在编写一个简单的文本编辑器,我遇到了同样的问题,我在互联网上找不到任何有用的东西。如果表单中有许多按钮,那么if,else if方法不是最佳的,所以我想为什么不采用现有的font.style并且只是添加到它使用|象上面提到的人的象征。我测试了这段代码并且它有效。我点击图片框中的这个方法。

更新。我发现了一个bug。取消选择字体时,它会将所有其他字体重置为常规字体。但是组合它们的代码可以工作。

private void ChangeFontStyle(PictureBox p)
        {
            if (p == pictureBox1)
            {
                if (BClicked)
                {
                    richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Bold);
                }
                else 
                {
                    richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
                }
            }
            else if (p == pictureBox2)
            {
                if (IClicked)
                {
                    richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Italic);
                }
                else 
                {
                    richTextBox1.SelectionFont = new Font(richTextBox1.Font,  richTextBox1.Font.Style | FontStyle.Regular);
                }
            }
            else if (p == pictureBox3)
            {
                if (UClicked)
                {
                    richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.SelectionFont.Style | FontStyle.Underline);
                }
                else
                {
                    richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
                }
            }
        }         

P.S我使用图片框代替按钮,而像BClicked这样的布尔变量表示它们是否被激活。

答案 4 :(得分:1)

我认为你可以从Font类中受益:

/*controlName*/.SelectionFont=new Font(maintext.Font, FontStyle.Italic);