我已经应用SmallCaps
如下所示,但它似乎对浏览器或设计窗口没有任何影响。
<TextBlock Text="Text Here !" Typography.Capitals="SmallCaps"/>
为什么Typography.Capitals
忽略参数?是否需要为此启用任何设置?
我已经应用SmallCaps
如下所示,但它似乎对浏览器或设计窗口没有任何影响。
<TextBlock Text="Text Here !" Typography.Capitals="SmallCaps"/>
为什么Typography.Capitals
忽略参数?是否需要为此启用任何设置?
更新
似乎要使这些属性起作用,使用的字体必须支持它们。Silverlight 无法使用字体执行魔术,它只能使用字体本身内置的功能。而且似乎不同版本的 Windows 之间存在一些差异,这使得这更加令人困惑。我在 Windows 7 和 8 上使用以下字体进行了尝试:Gabriola、Georgia、Verdana、Arial、Comic Sans MS、Calibri、Segoe UI、便携式用户界面
在 Win7 和 8 上,唯一有效的属性是 SmallCaps 和 AllSmallCaps。在 Win7 或 Win8 上,其他设置都没有任何区别。在 Windows 8 上,这两个属性适用于上面列出的所有字体。在 Windows 7 上,它们工作的唯一字体是Calibri 和 Gabriola。然后我开始研究安装在两台不同机器上的字体版本。事实证明它们是不同的。例如,在我的 Win7 机器上,Verdana 和 Segoe UI 的版本都是 5.05。在 Win8 机器上 Verdana 是 5.31 版,Segoe UI 是 5.28 版。
所以我认为这就是为什么我们在不同的机器上得到不同的结果。它与 Silverlight 无关,而是与客户端计算机上安装的字体版本有关。Win7 上安装的 Verdana 版本不支持 SmallCaps 和 AllSmallCaps,但 Win8 附带的版本确实支持。
结束更新
我肯定看到了 SmallCaps 和 AllSmallCaps 的不同之处。其余的值似乎没有做任何事情。我想这可能取决于使用的 FontFamily。无论如何,以下代码呈现如下屏幕截图。
<ContentControl FontSize="18"
FontFamily="Segoe UI">
<StackPanel>
<TextBlock Text="Writing Some Text Here in the Text Block. AllPetiteCaps"
Typography.Capitals="AllPetiteCaps"></TextBlock>
<TextBlock Text="Writing Some Text Here in the Text Block. AllSmallCaps"
Typography.Capitals="AllSmallCaps"></TextBlock>
<TextBlock Text="Writing Some Text Here in the Text Block. Normal"
Typography.Capitals="Normal"></TextBlock>
<TextBlock Text="Writing Some Text Here in the Text Block. PetiteCaps"
Typography.Capitals="PetiteCaps"></TextBlock>
<TextBlock Text="Writing Some Text Here in the Text Block. SmallCaps"
Typography.Capitals="SmallCaps"></TextBlock>
<TextBlock Text="Writing Some Text Here in the Text Block. Titling"
Typography.Capitals="Titling"></TextBlock>
<TextBlock Text="Writing Some Text Here in the Text Block. Unicase"
Typography.Capitals="Unicase"></TextBlock>
</StackPanel>
</ContentControl>
我不确定 WPF 和 Silverlight 之间在这方面有多大区别,但显然对于 WPF,字体必须是 OpenType 字体。根据wpf.2000things.com:
WPF 包含一个 Typography 类,它允许为文本元素设置各种附加属性。这些属性仅影响使用 OpenType 字体呈现的文本。
在WPF 编程第 2 版中:
WPF 支持 TrueType 和 OpenType 字体。OpenType 字体通常包含许多基本字符形状集的替代品,以支持高级印刷功能。如果您正在使用 GlyphRun 等低级文本处理功能,则可以直接使用这些替代项,通过字形索引引用它们。但是,如果您使用的是更高级别的元素,例如 TextBlock 或 FlowDocument 查看器,它们可以为您定位和使用适当的字形。您可以通过 Typography 类定义的附加属性来控制使用哪些字符形状。