我正在寻找字体文件中的属性(来自WPF System.Windows.Media.Fonts Typeface或GlyphTypeface)或直接访问.ttf/.otf文件,这将允许我确定Windows中的Write/WordPad等程序是否将Bold应用于字体.基本上,一些具有Bold属性的字体仍会获得额外的粗体,有些则不会.我试图发现用于做出这种决定的逻辑是什么.
若要手动查看此内容,请将以下内容复制并粘贴到"写入/写字板"(或OOo的Writer或MS Word或...)中,并将每行的字体更改为其名称(即将Arial Black应用于Arial Black)
现在应用粗体.你会看到#2和#3发生变化,但不会变成#1.
但是,#3虽然发生了与其他两种不同的东西 - 正在应用不同的字体.即ARIALNB .TTF(附加'NB',即Arial Narrow Bold)代替ARIALN.TTF(附加'N',即Arial Narrow).因此,对于此字体,实际上并未应用粗体.
回到列表.#1不会改变,但#2会改变.#1的重量是"黑色"而#2的重量是"粗体".如果您使用#3,ARIALNB.TTF的粗体版本并对其应用粗体,它将表现为#1 - 它不会改变.但它的重量与#2相同,即"Bold".
换句话说,两个是粗体(Arial Rounded MT Bold和Arrow Narrow Bold),但只有Arial Rounded MT Bold得到更大胆的应用.在Arial Black的情况下,它没有大胆的重量,但它仍然没有大胆的应用它.
这是它的样子:

有趣的是,WPF没有表现出这种行为(即添加更多粗体),但Silverlight会:
<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>
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
回答的问题是:字体文件的哪些属性告诉程序添加更多粗体?我在字体文件中寻找一个标志或属性来告诉我这个逻辑.
以下是应用"Bold"无效的其他字体列表: - 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 - Moire ExtraBold - Myriad Pro Light - Poplar Std - Prestige Elite Std - Rockwell Extra Bold - Script MT Bold - Segoe WP Black - Tekton Pro Ext - Stencil Std