本文內(nèi)容
- OpenType 字體格式
- 變量
- 大寫字母
- 連字
- 花體
- 備用項
- 數(shù)字樣式
- 版式類
本主題概述了 Windows Presentation Foundation (WPF) 中 OpenType 字體技術(shù)的一些主要功能。
1、OpenType 字體格式
OpenType 字體格式是 TrueType? 字體格式的擴展,增加了對 PostScript 字體數(shù)據(jù)的支持。 OpenType 字體格式由 Microsoft 和 Adobe Corporation 聯(lián)合開發(fā)。 無論字體包含 TrueType 邊框還是 CFF (PostScript) 邊框,OpenType 字體和支持 OpenType 字體的操作系統(tǒng)服務(wù)都向用戶提供一種簡單的字體安裝和使用方式。
OpenType 字體格式解決了以下開發(fā)人員挑戰(zhàn):
-
更廣泛的多平臺支持。
-
更出色的國際字符集支持。
-
更優(yōu)的字體數(shù)據(jù)保護。
-
更小的文件大小,讓字體發(fā)布更加高效。
-
更廣泛的高級版式控件支持。
?備注
Windows SDK 包含一組可用于 Windows Presentation Foundation (WPF) 應(yīng)用程序的示例 OpenType 字體。 這些字體提供本主題余下部分所述的大多數(shù)功能。
高級版式擴展
高級版式表格(OpenType 布局表格)擴展了具有 TrueType 或 CFF 邊框的字體的功能。 OpenType 布局字體包含一些其他信息,可擴展字體功能以支持高質(zhì)量國際版式。 大多數(shù) OpenType 字體僅體現(xiàn)全部可用 OpenType 功能的一部分。 OpenType 字體提供以下功能。
-
字符與字形之間的豐富映射,可支持連字、定位格式、備用項以及其他字體替換功能。
-
支持二維定位和字形附加。
-
字體中包含的顯式腳本和語言信息,使文本處理應(yīng)用程序可相應(yīng)調(diào)整其行為。
在 OpenType 規(guī)范的“字體文件表格”部分中對 OpenType 布局表格進行了更詳細的介紹。
此概述的其余部分介紹了一些直觀有趣的 OpenType 功能的廣度和靈活性(這些功能由?Typography?對象的屬性公開)。?
2、變量
變量用于呈現(xiàn)不同的版式風(fēng)格,例如上標和下標。
上標和下標
通過?Variants?屬性可以設(shè)置 OpenType 字體的上標和下標值。
以下文本顯示 Palatino Linotype 字體的上標。
以下標記示例演示如何使用?Typography?對象的屬性定義 Palatino Linotype 字體的上標。
XAML復(fù)制
<Paragraph FontFamily="Palatino Linotype">
2<Run Typography.Variants="Superscript">3</Run>
14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>
以下文本顯示 Palatino Linotype 字體的下標。
以下標記示例演示如何使用?Typography?對象的屬性定義 Palatino Linotype 字體的下標。
XAML復(fù)制
<Paragraph FontFamily="Palatino Linotype">
H<Run Typography.Variants="Subscript">2</Run>O
Footnote<Run Typography.Variants="Subscript">4</Run>
</Paragraph>
上標和下標的修飾用法
也可使用上標和下標來營造混合大小寫文本的修飾效果。 以下文本顯示 Palatino Linotype 字體的上標和下標文本。 注意,大寫字母不受影響。
以下標記示例演示如何使用?Typography?對象的屬性定義字體的上標和下標。
XAML復(fù)制
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Superscript">
Chapter One
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Subscript">
Chapter One
</Paragraph>
3、大寫字母
大寫字母是一組以大寫樣式字形呈現(xiàn)文本的版式形式。 通常情況下,當以全大寫呈現(xiàn)文本時,字母之間的間距可能看起來很小,字母的權(quán)重和比例看起來會很大。 OpenType 支持多種大寫字母的樣式格式,包括小體大寫字母、小號大寫字母、標題和大寫字母間距。 通過這些樣式格式可控制大寫字母的外觀。
以下文本顯示 Pescadero 字體的標準大寫字母,其后接樣式為“SmallCaps”和“AllSmallCaps”的字母。 本例中,對所有三個單詞均使用相同的字體大小。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pescadero 字體的大寫字母。 使用“SmallCaps”格式時會忽略任何前導(dǎo)大寫字母。
XAML復(fù)制
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
標題大寫字母
標題大寫字母權(quán)重和比例更小,外觀比普通大寫字母更加雅致。 標題大寫字母通常用于作為標題的大號字體中。 以下文本顯示 Pescadero 字體的普通大寫字母和標題大寫字母。 請注意第二行文本的寬度更窄。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pescadero 字體的標題大寫字母。
XAML復(fù)制
<Paragraph FontFamily="Pescadero">
<Run Typography.Capitals="Titling">chapter one</Run>
</Paragraph>
大寫字母間距
大寫字母間距功能讓你可以在使用全大寫字母文本時提供更寬的間距。 大寫字母通常設(shè)計為與小寫字母混合使用。 大寫字母和小寫字母之間看起來比較美觀的間距在使用全大寫字母時可能會顯得過緊。 以下文本顯示 Pescadero 字體的普通間距和大寫字母間距。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pescadero 字體的大寫字母間距。
XAML復(fù)制
<Paragraph FontFamily="Pescadero">
<Run Typography.CapitalSpacing="True">CHAPTER ONE</Run>
</Paragraph>
4、連字
連子是為使文本更具可讀性或更加美觀而由兩個或更多字形形成的一個單一字形。 OpenType 字體支持四種類型的連字:
-
標準連字。 旨在增強可讀性。 標準連字包括“fi”、“fl”和“ff”。
-
上下文連字。 旨在通過在組成連字的字符之間提供更好的聯(lián)結(jié)行為來增強可讀性。
-
自由連字。 重在修飾性,并非專為可讀性而設(shè)計。
-
歷史連字。 重在歷史性,并非專為可讀性而設(shè)計。
以下文本顯示 Pericles 字體的標準連字字形。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pericles 字體的標準連字字形。
XAML復(fù)制
<Paragraph FontFamily="Pericles" Typography.StandardLigatures="True">
<Run Typography.StylisticAlternates="1">FI</Run>
<Run Typography.StylisticAlternates="1">FL</Run>
<Run Typography.StylisticAlternates="1">TH</Run>
<Run Typography.StylisticAlternates="1">TT</Run>
<Run Typography.StylisticAlternates="1">TV</Run>
<Run Typography.StylisticAlternates="1">TW</Run>
<Run Typography.StylisticAlternates="1">TY</Run>
<Run Typography.StylisticAlternates="1">VT</Run>
<Run Typography.StylisticAlternates="1">WT</Run>
<Run Typography.StylisticAlternates="1">YT</Run>
</Paragraph>
以下文本顯示 Pericles 字體的自由連字字形。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pericles 字體的自由連字字形。
XAML復(fù)制
<Paragraph FontFamily="Pericles" Typography.DiscretionaryLigatures="True">
<Run Typography.StylisticAlternates="1">CO</Run>
<Run Typography.StylisticAlternates="1">LA</Run>
<Run Typography.StylisticAlternates="1">LE</Run>
<Run Typography.StylisticAlternates="1">LI</Run>
<Run Typography.StylisticAlternates="1">LL</Run>
<Run Typography.StylisticAlternates="1">LO</Run>
<Run Typography.StylisticAlternates="1">LU</Run>
</Paragraph>
默認情況下,Windows Presentation Foundation (WPF) 中的 OpenType 字體啟用標準連字。 例如,如果使用 Palatino Linotype 字體,則標準連字“fi”、“ff”和“fl”顯示為組合字符字形。 請注意,每個標準連字的字符對之間彼此相連。
但是,可禁用標準連字功能,從而使“ff”等標準連字顯示為兩個單獨的字形,而不顯示為一個組合字符字形。
以下標記示例演示如何使用?Typography?對象的屬性禁用 Palatino Linotype 字體的標準連字字形。
XAML復(fù)制
<!-- Set standard ligatures to false in order to disable feature. -->
<Paragraph Typography.StandardLigatures="False" FontFamily="Palatino Linotype" FontSize="72">
fi ff fl
</Paragraph>
5、花體
花體是使用精美修飾的裝飾性字形,通常與書法相關(guān)。 以下文本顯示 Pescadero 字體的標準和花體字形。
花體通常用作事件公告等簡短文章中的修飾元素。 以下文本使用花體強調(diào)事件名稱的大寫字母。
以下標記示例演示如何使用?Typography?對象的屬性定義字體花體。
XAML復(fù)制
<Paragraph FontFamily="Pescadero" TextBlock.TextAlignment="Center">
Wishing you a<LineBreak/>
<Run Typography.StandardSwashes="1" FontSize="36">Happy New Year!</Run>
</Paragraph>
連接形式花體
花體字形的某些組合可能導(dǎo)致文本外觀欠佳,例如相鄰字母的下行處出現(xiàn)重疊。 通過連接形式花體,可使用能生成更佳外觀的替代花體字形。 以下文本顯示同一單詞應(yīng)用連接形式花體前后的外觀。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pescadero 字體的連接形式花體。
XAML復(fù)制
<Paragraph FontFamily="Pescadero" Typography.StandardSwashes="1">
Lyon <Run Typography.ContextualSwashes="1">L</Run>yon
</Paragraph>
6、備用項
備用項是可替代標準字形的字形。 OpenType 字體(例如以下示例中使用的 Pericles 字體)可包含用于塑造不同文本外觀的備用字形。 以下文本顯示 Pericles 字體的標準字形。
Pericles OpenType 字體包含其他字形,可為標準自行集提供樣式備用項。 以下文本顯示樣式備用字形。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pericles 字體的樣式備用字形。
XAML復(fù)制
<Paragraph FontFamily="Pericles">
<Run Typography.StylisticAlternates="1">A</Run>NCIENT
GR<Run Typography.StylisticAlternates="1">EE</Run>K
MYTH<Run Typography.StylisticAlternates="1">O</Run>LOGY
</Paragraph>
以下文本顯示 Pericles 字體的幾種其他樣式備用字形。
以下標記示例演示如何定義其他樣式備用字形。
XAML復(fù)制
<Paragraph FontFamily="Pericles">
<Run Typography.StylisticAlternates="1">A</Run>
<Run Typography.StylisticAlternates="2">A</Run>
<Run Typography.StylisticAlternates="3">A</Run>
<Run Typography.StylisticAlternates="1">C</Run>
<Run Typography.StylisticAlternates="1">E</Run>
<Run Typography.StylisticAlternates="1">G</Run>
<Run Typography.StylisticAlternates="1">O</Run>
<Run Typography.StylisticAlternates="1">Q</Run>
<Run Typography.StylisticAlternates="1">R</Run>
<Run Typography.StylisticAlternates="2">R</Run>
<Run Typography.StylisticAlternates="1">S</Run>
<Run Typography.StylisticAlternates="1">Y</Run>
</Paragraph>
隨機備用連接形式
隨機備用連接形式為單個字符提供多種備用字形。 實現(xiàn)腳本類型字體時,此功能可通過使用一組隨機選擇的外觀稍有差異的字形來模擬手寫內(nèi)容。 以下文本使用 Lindsey 字體的隨機備用連接形式。 請注意字母“a”外觀稍有變化
以下標記示例演示如何使用?Typography?對象的屬性定義 Lindsey 字體的隨機備用連接形式。
XAML復(fù)制
<TextBlock FontFamily="Lindsey">
<Run Typography.ContextualAlternates="True">
a banana in a cabana
</Run>
</TextBlock>
歷史形式
歷史形式指過去常見的版式約定。 以下文本使用 Palatino Linotype 字體的一種歷史字形形式顯示短語“Boston, Massachusetts”。
以下標記示例演示如何使用?Typography?對象的屬性定義 Palatino Linotype 字體的歷史形式。
XAML復(fù)制
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.HistoricalForms="True">Boston, Massachusetts</Run>
</Paragraph>
7、數(shù)字樣式
OpenType 字體支持多種可用于文本中數(shù)值的功能。
分數(shù)
OpenType 字體支持多種分數(shù)樣式,包括橫式分數(shù)和豎式分數(shù)。
以下文本顯示 Palatino Linotype 字體的分數(shù)樣式。
以下標記示例演示如何使用?Typography?對象的屬性定義 Palatino Linotype 字體的分數(shù)樣式。
XAML復(fù)制
<Paragraph FontFamily="Palatino Linotype" Typography.Fraction="Slashed">
1/8 1/4 3/8 1/2 5/8 3/4 7/8
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Fraction="Stacked">
1/8 1/4 3/8 1/2 5/8 3/4 7/8
</Paragraph>
舊樣式數(shù)字
OpenType 字體支持舊樣式數(shù)字格式。 此格式對于顯示不再是標準樣式的數(shù)字非常有用。 以下文本以 Palatino Linotype 字體的標準和舊樣式數(shù)字格式顯示 18 世紀日期。
以下文本顯示 Palatino Linotype 字體的標準數(shù)字,后跟舊樣式數(shù)字。
以下標記示例演示如何使用?Typography?對象的屬性定義 Palatino Linotype 字體的舊樣式數(shù)字。
XAML復(fù)制
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.NumeralStyle="Normal">1234567890</Run>
<Run Typography.NumeralStyle="OldStyle">1234567890</Run>
</Paragraph>
比例數(shù)字和表格式數(shù)字
OpenType 字體支持比例數(shù)字和表格式數(shù)字功能,可在使用數(shù)字時控制寬度對齊。 比例數(shù)字將每個數(shù)字視為具有不同的寬度—“1”窄于“5”。 表格式數(shù)字被視為寬度相等的數(shù)字,因此它們可垂直對齊,從而增強財務(wù)類型信息的可讀性。
以下文本使用 Miramonte 字體顯示第一列中的兩個表格式數(shù)字。 請注意數(shù)字“5”和“1”之間的寬度差異。 第二列顯示相同的兩個數(shù)值,并通過使用表格式數(shù)字功能調(diào)整其寬度。
以下標記示例演示如何使用?Typography?對象的屬性定義 Miramonte 字體的比例數(shù)字和表格式數(shù)字。
XAML復(fù)制
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Proportional">114,131</Run>
</TextBlock>
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Tabular">114,131</Run>
</TextBlock>
斜線零
OpenType 字體支持斜線零數(shù)字格式來強調(diào)字母“O”和數(shù)字“0”之間的差異。 斜線零數(shù)字通常用于財務(wù)和商務(wù)信息中的標識符。
以下文本顯示使用 Miramonte 字體的訂單標識符。 第一行使用標準數(shù)字。 第二行使用斜線零數(shù)字,以便更易于與大寫字母“O”進行區(qū)分。
以下標記示例演示如何使用?Typography?對象的屬性定義 Miramonte 字體的斜線零數(shù)字。
XAML復(fù)制
<Paragraph FontFamily="Miramonte">
<Run>Order #0048-OTC-390</Run>
<LineBreak/>
<Run Typography.SlashedZero="True">Order #0048-OTC-390</Run>
</Paragraph>
8、版式類
Typography?對象公開 OpenType 字體支持的功能集。 通過在標記中設(shè)置?Typography?的屬性,可輕松創(chuàng)作使用 OpenType 功能的文檔。
以下文本顯示 Pescadero 字體的標準大寫字母,其后接樣式為“SmallCaps”和“AllSmallCaps”的字母。 本例中,對所有三個單詞均使用相同的字體大小。
以下標記示例演示如何使用?Typography?對象的屬性定義 Pescadero 字體的大寫字母。 使用“SmallCaps”格式時會忽略任何前導(dǎo)大寫字母。
XAML復(fù)制
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
以下代碼示例完成與先前的標記事例相同的任務(wù)。
C#復(fù)制
MyParagraph.FontFamily = new FontFamily("Pescadero");
MyParagraph.FontSize = 48;
Run run_1 = new Run("CAPITALS ");
MyParagraph.Inlines.Add(run_1);
Run run_2 = new Run("Capitals ");
run_2.Typography.Capitals = FontCapitals.SmallCaps;
MyParagraph.Inlines.Add(run_2);
Run run_3 = new Run("Capitals");
run_3.Typography.Capitals = FontCapitals.AllSmallCaps;
MyParagraph.Inlines.Add(run_3);
MyParagraph.Inlines.Add(new LineBreak());
版式類屬性
下表列出了?Typography?對象的屬性、值和默認設(shè)置。文章來源:http://www.zghlxwxcb.cn/news/detail-793161.html
展開表文章來源地址http://www.zghlxwxcb.cn/news/detail-793161.html
properties | 值 | 默認值 |
---|---|---|
AnnotationAlternates | 數(shù)值 - 字節(jié) | 0 |
Capitals | AllPetiteCaps?|?AllSmallCaps?|?Normal?|?PetiteCaps?|?SmallCaps?|?Titling?|?Unicase | FontCapitals.Normal |
CapitalSpacing | Boolean | false |
CaseSensitiveForms | Boolean | false |
ContextualAlternates | Boolean | true |
ContextualLigatures | Boolean | true |
ContextualSwashes | 數(shù)值 - 字節(jié) | 0 |
DiscretionaryLigatures | Boolean | false |
EastAsianExpertForms | Boolean | false |
EastAsianLanguage | HojoKanji?|?Jis04?|?Jis78?|?Jis83?|?Jis90?|?NlcKanji?|?Normal?|?Simplified?|?Traditional?|?TraditionalNames | FontEastAsianLanguage.Normal |
EastAsianWidths | Full?|?Half?|?Normal?|?Proportional?|?Quarter?|?Third | FontEastAsianWidths.Normal |
Fraction | Normal?|?Slashed?|?Stacked | FontFraction.Normal |
HistoricalForms | Boolean | false |
HistoricalLigatures | Boolean | false |
Kerning | Boolean | true |
MathematicalGreek | Boolean | false |
NumeralAlignment | Normal?|?Proportional?|?Tabular | FontNumeralAlignment.Normal |
NumeralStyle | Boolean | FontNumeralStyle.Normal |
SlashedZero | Boolean | false |
StandardLigatures | Boolean | true |
StandardSwashes | 數(shù)值 - 字節(jié) | 0 |
StylisticAlternates | 數(shù)值 - 字節(jié) | 0 |
StylisticSet1 | Boolean | false |
StylisticSet2 | Boolean | false |
StylisticSet3 | Boolean | false |
StylisticSet4 | Boolean | false |
StylisticSet5 | Boolean | false |
StylisticSet6 | Boolean | false |
StylisticSet7 | Boolean | false |
StylisticSet8 | Boolean | false |
StylisticSet9 | Boolean | false |
StylisticSet10 | Boolean | false |
StylisticSet11 | Boolean | false |
StylisticSet12 | Boolean | false |
StylisticSet13 | Boolean | false |
StylisticSet14 | Boolean | false |
StylisticSet15 | Boolean | false |
StylisticSet16 | Boolean | false |
StylisticSet17 | Boolean | false |
StylisticSet18 | Boolean | false |
StylisticSet19 | Boolean | false |
StylisticSet20 | Boolean | false |
Variants | Inferior?|?Normal?|?Ordinal?|?Ruby?|?Subscript?|?Superscript | FontVariants.Normal |
到了這里,關(guān)于【W(wǎng)PF.NET開發(fā)】OpenType字體的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!