I am looking for a property in a font file (either from WPF System.Windows.Media.Fonts Typeface , or GlyphTypeface ), or directly accesses the .ttf / .otf file, which will allow me to determine if a program, for example Write / WordPad on Windows, will apply Bold to the font. Basically, some fonts that have a Bold attribute will still get the extra boldness applied to them, and some won't. I am trying to figure out what is the logic that is used for this definition.
To see this manually, copy and paste the following into Write / WordPad (or OOo Writer or MS Word or ...) and change each face of the line font to this name (for example, apply Arial Black to Arial Black)
- Arial black
- Arial Rounded MT Bold
- Arial narrow
Now apply a bold font to them. You will see changes # 2 and # 3, but not # 1.
With # 3, however, something different happens than the other two - a different font is applied together. Namely ARIALNB.TTF ('NB' added, which is Arial narrow Bold) instead of ARIALN.TTF ('N' attached, which is Arial narrow). So in the case of this font, bold is not actually used.
Back to the list. # 1 does not change, but # 2 does. # 1 is Black, and # 2 is Bold. If you take the bold version # 3, ARIALNB.TTF and apply a bold font to it, it will act as # 1 - it will not change. But it has the same weight as # 2, "Bold."
In other words, the two are shown in bold (Arial Rounded MT Bold and Arrow Narrow Bold), but only Arial Rounded MT Bold becomes bolder. In the case of Arial Black, it does not have bold weight, but it still does not have bold and to it.
Here's what it looks like: 
Interestingly, WPF does not exhibit this behavior (i.e. adds a bold font), but Silverlight does:
WPF (Note that FontFamily is "Arial Rounded MT"):
<StackPanel Orientation="Vertical"> <TextBlock FontSize="24" Text="Arial Rounded MT Bold" FontFamily="Arial Rounded MT"/> <TextBlock FontSize="24" Text="Arial Rounded MT Bold" FontWeight="Black" FontFamily="Arial Rounded MT"/> </StackPanel>
Silverlight (Note that FontFamily is "Arial Rounded MT Bold"):
<StackPanel Orientation="Vertical"> <TextBlock FontSize="24" FontFamily="Arial Rounded MT Bold" >Arial Rounded MT Bold</TextBlock> <TextBlock FontSize="24" FontFamily="Arial Rounded MT Bold" FontWeight="Bold" >Arial Rounded MT Bold</TextBlock> </StackPanel>
The question will return to: what property of the font file tells the program to add a bold font or not? I am looking for a flag or property in a font file that will tell me this logic.
Here is a list of other fonts that use "Bold", has no effect: <Sub> - Adobe Caslon Pro Bold - Adobe Garamond Pro Bold - Andy - Arial Black - Bell Gothic Std Black - Bell Gothic light black - Berlin Sans FB Demi - Blackoak Std - Bodoni MT Black - Charlemagne Std - Minion Pro Cond - Sea Extraboard - Miriad Pro Light - Poplar Std - Prestige Elite Std - Rockwell Extra Bold - Script MT Bold - Segoe WP Black - Tekton Pro Ext - Stencil Std Sub >