gpt4 book ai didi

c# - 从控件的字体中删除 FontStyle Bold

转载 作者:行者123 更新时间:2023-11-30 13:13:28 29 4
gpt4 key购买 nike

我觉得自己是个菜鸟,但我似乎找不到任何关于这个的东西......

我有一个控件,我基本上是在尝试在粗体和非粗体之间切换字体样式。这应该很简单......

但是,您无法访问 Control.Font.Bold 属性,因为它是只读的,因此,您需要更改 Font 属性。

为了让它变得粗体,我只是这样做:

this.btn_buttonBolding.Font = new Font(this.btn_buttonBolding.Font, FontStyle.Bold);

不理想,但它有效。但是,如何删除这种粗体样式(一旦它已经是粗体)?

我努力寻找重复项;我能找到的最接近的是这个,但它并不能完全回答我的情况: Substract Flag From FontStyle (Toggling FontStyles) [C#]

这给出了如何设置它,而不是删除它:Change a font programmatically

我是否缺少可以执行此操作的简单字体构造函数?或者我只是错过了一些更容易的东西?

最佳答案

我知道这有点老了,但我遇到了完全相同的问题并想出了这个:

Font opFont = this.btn_buttonBolding.Font;
if(value)
{
this.btn_buttonBolding.Font = new Font(opFont, opFont.Style | FontStyle.Bold);
}
else
{
this.btn_buttonBolding.Font = new Font(opFont, opFont.Style & ~FontStyle.Bold);
}

神奇之处在于“~”,即按位非。 (参见 MSDN KB article "~Operator")

VB.NET 版本:

Dim opFont As Font = me.btn_buttonBolding.Font
If (value)
me.btn_buttonBolding.Font = new Font(opFont, opFont.Style Or FontStyle.Bold)
Else
me.btn_buttonBolding.Font = new Font(opFont, opFont.Style And Not FontStyle.Bold)
End if

关于c# - 从控件的字体中删除 FontStyle Bold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9777834/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com