C# 如何向具有多个属性的标签添加字体?

C# 如何向具有多个属性的标签添加字体?,c#,forms,C#,Forms,我目前正在尝试在运行时生成标签,并在运行时添加它们各自的字体 到目前为止,我成功地用这一行在我的标签上加了下划线和粗体字: championName.Font = new Font(championName.Font, FontStyle.Bold | FontStyle.Underline); 尽管将属性与|相加似乎已经很奇怪了,但它仍然有效 但是,如果我现在还想更改标签的文本大小,我该怎么做?我不太明白我要把它挤到哪里去 我尝试创建一个字体对象,如下所示: Font fnt = new F

我目前正在尝试在运行时生成标签,并在运行时添加它们各自的字体

到目前为止,我成功地用这一行在我的标签上加了下划线和粗体字:

championName.Font = new Font(championName.Font, FontStyle.Bold | FontStyle.Underline);

尽管将属性与|相加似乎已经很奇怪了,但它仍然有效

但是,如果我现在还想更改标签的文本大小,我该怎么做?我不太明白我要把它挤到哪里去

我尝试创建一个字体对象,如下所示:

Font fnt = new Font();
championName.Font.Size = 1.5F;
然后编辑它的属性,但考虑到我不能创建这样的对象,这很快就失败了

那么,我如何一次在这个标签上更改多个内容呢?我的意思是,很明显,我不能只分配另一个
新字体()而不丢失我的旧代码,因此必须有一种方法来做到这一点。

有几个构造函数。一种可能性是使用其中一个构造函数:


尝试以下两种解决方案:

1) 您可以尝试
Font
类的重载构造函数。其中一些参数包括尺寸作为参数之一。请参阅此处的构造函数文档:

例如:

new Font("font-family", 1.5F, FontStyle.Bold | FontStyle.Underline);

2) 您可以尝试访问
标签的
Font
属性的
Size
属性,如下所示:

Font fnt = new Font();
championName.Font.Size = 1.5F;

让我知道你的发现。

这个
Font
构造器有一个重载,它需要一个字体大小:接下来你需要的是颜色;因此,创建一个类并在其中添加内容。。这样一个myFont实例也可以存储在标签的标签中。“即使将属性与|相加似乎已经很奇怪了”——这是一个按位or;每个枚举值表示一个特定的位模式(例如0001和0010),通过按位对它们进行ORing,您可以得到一个包含这两个属性(0011)的位模式。@RonBeyer Yes,但它不采用现有字体,只采用字体样式或名称,因此您还必须设置其他属性。OP似乎只想更改大小。@DStanley是的,但您可以很容易地从现有字体(
championName.font.FontFamily
)中获取字体名称,正如公认的答案所说。您也可以将当前字体用作第一个参数来更改它。@Leesharrison我已经更新了示例代码。谢谢你的提示。我不知道为什么我不能让它工作。根据医生的说法,这似乎应该有效。然而,它总是建议我最接近的一致性应该是Font.Font(string familyName、float emSize、GraphicsUnit)。尝试将
championName.Font
更改为
championName.Font.fontfamine
。我很高兴答案对我有所帮助。