Typography
WPF supports both TrueType and OpenType fonts. OpenType fonts
often contain many alternates to the basic set of character shapes in
order to support advanced typographical functionality. If you are using
a low-level text-handling feature such as GlyphRun, you can use these alternates
directly, referring to them by glyph index. But if you are using the
higher-level elements, such as TextBlock or the FlowDocument viewers, these can locate and use
the appropriate glyphs for you. You can control which character shapes
are used with the attached properties defined by the Typography class.
Because WPF supports all of OpenType's typography features, we will not provide a complete list here.[103] We'll show just one example: ligatures.
Most fonts offer ligatures: single shapes representing a group of letters. Historically, ligatures were invented out of necessity. In the past, typesetting involved an individual block of metal or wood for each letter. Certain combinations were problematic. For example, the top of a lowercase letter f extends to the right of the main stem of the letter. If you put two of them next to each other, with some typefaces this results in too much space between the stems—you couldn't get the letters close enough together to look right. To solve this, printers used a single block of metal with two fs on it. This single block is called a ligature. Figure 14-49 shows an example from the Palatino Linotype typeface: the two lowercase fs are displayed as a single ...