How do I set button font to Marlett

2019-06-20 08:27发布

问题:

I'm attempting to set a font of button to system's Marlett font. However, though I manually set the font-face, other font is used. Also, Marlett is not listed, when I use the font dialog to choose a font for that button.

Why is it so? What can I do to use Marlett font in .NET Windows Forms controls?

回答1:

Though I do not know what code is behind the designer, I have always found that custom installed fonts do not show up in the designer. The good news is that the Font property is ambient so if you wanted all controls to have the same Font you would only have to set it at the Form. However, it seems like you just want one control to have the Font so let's do this:

ctrl.Font = new Font("Marlett", 8.5f);

which will set that control's Font to Marlett and a size of 8.5 for example.

If you wanted an entire set of controls to have the same Font, if they can be placed in a container like a Panel, then you would only have to set the Font of the Panel; because again, it's an ambient property.



回答2:

   button1.Font = new Font("Marlett",8, FontStyle.Regular);

put this code for your button name Button1 , where you want change ( in from constrcutor after iinitializecomponet or in form Load event )



回答3:

It would seem that the designer by default wants to set the GdiCharSet to 0. This causes the Marlett font to fall back to another font.

If you change the GdiCharSet to 1 it will render normally.

Also note the changes it makes in the .designer.cs, this will also explain why it did work when you would set the font manually from code.