【问题标题】:Change Font Style更改字体样式
【发布时间】:2013-07-20 07:12:32
【问题描述】:

我有一个带有 BoldItalic 文本的标签。我想通过单击按钮来更改这些字体属性。

我知道了代码Label1.Font = new Font(Label1.Font, FontStyle.Regular);

但从这段代码中,它将撤消 BOLDITALIC 属性。我只想删除 bold 属性.....

有没有类似fontsyle.bold = false 的东西?

【问题讨论】:

  • 不需要多个感叹号和“感谢信”等额外文本。讨论meta

标签: c#


【解决方案1】:

新建时使用原字体的Font.Style,使用& ~翻转样式

   label1.Font = new Font(label1.Font, label1.Font.Style & ~FontStyle.Bold);

【讨论】:

    【解决方案2】:

    你也可以试试这个——

    label1.Font = new Font("Arial", 24,FontStyle.Bold);
    

    mainForm.lblName.Font = new Font("Arial", mainForm.lblName.Font.Size);
    

    构造函数采用不同的参数。 see more

    【讨论】:

      【解决方案3】:

      最好的选择是使用位码和 XOR 运算符 ^

      试试这个代码:

      Label1.Font = new Font(Label1.Font.Style ^ FontStyle.Regular);
      

      【讨论】:

      • 接受的答案对我不起作用……这一个起作用了!从只有 1 个代表的人那里学到了一些新东西。 :-) 我想曾经有一段时间,斯基特先生也只有 1 个代表……
      【解决方案4】:
      private void btn_bold_CheckedChanged(object sender, EventArgs e)
          {
              label1.Font = label2.Font = new Font( label1.Font,label1.Font.Style ^ FontStyle.Bold);
          }
      
          private void btn_italic_Click(object sender, EventArgs e)
          {
              label1.Font = label2.Font = new Font(label1.Font, label1.Font.Style ^ FontStyle.Italic);
          }
      
          private void btn_underline_Click(object sender, EventArgs e)
          {
              label1.Font = label2.Font = new Font(label1.Font, label1.Font.Style ^ FontStyle.Underline);
          }
      

      这将满足你的所有需求

      【讨论】:

      • 你能edit你的答案解释为什么这会满足他的需要吗?
      猜你喜欢
      • 1970-01-01
      • 2011-12-02
      • 2015-11-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多