Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten temat zawiera omówienie niektórych kluczowych funkcji technologii czcionek OpenType w programie Windows Presentation Foundation (WPF).
Format czcionki OpenType
Format czcionki OpenType jest rozszerzeniem formatu czcionki TrueType®, dodając obsługę danych czcionek PostScript. Format czcionki OpenType został opracowany wspólnie przez firmę Microsoft i firmę Adobe Corporation. Czcionki OpenType i usługi systemu operacyjnego, które obsługują czcionki OpenType, zapewniają użytkownikom prosty sposób instalowania i używania czcionek, niezależnie od tego, czy czcionki zawierają konspektu TrueType, czy konspektu CFF (PostScript).
Format czcionki OpenType rozwiązuje następujące wyzwania dla deweloperów:
Szersza obsługa wielu platform.
Lepsza obsługa międzynarodowych zestawów znaków.
Lepsza ochrona danych czcionek.
Mniejsze rozmiary plików w celu zwiększenia wydajności dystrybucji czcionek.
Szersza obsługa zaawansowanej kontrolki typograficznej.
Uwaga / Notatka
Zestaw Windows SDK zawiera zestaw przykładowych czcionek OpenType, których można używać z aplikacjami Windows Presentation Foundation (WPF). Te czcionki zawierają większość funkcji przedstawionych w pozostałej części tego tematu. Aby uzyskać więcej informacji, zobacz Sample OpenType Font Pack.
Aby uzyskać szczegółowe informacje na temat formatu czcionki OpenType, zobacz specyfikację OpenType.
Zaawansowane rozszerzenia typograficzne
Tabele zaawansowane typograficzne (tabele układu OpenType) rozszerzają funkcjonalność czcionek za pomocą konturów TrueType lub CFF. Czcionki układu OpenType zawierają dodatkowe informacje, które rozszerzają możliwości czcionek w celu obsługi wysokiej jakości międzynarodowych typografii. Większość czcionek OpenType uwidacznia tylko podzbiór wszystkich dostępnych funkcji OpenType. Czcionki OpenType udostępniają następujące funkcje.
Rozbudowane mapowanie znaków i glifów, które obsługują ligatury, formy pozycyjne, alternatywy oraz inne substytucje czcionek.
Obsługa pozycjonowania dwuwymiarowego i dołączania glifów.
Jawny skrypt i informacje o języku zawarte w czcionce, dzięki czemu aplikacja do przetwarzania tekstu może odpowiednio dostosować swoje zachowanie.
Tabele układu OpenType zostały szczegółowo opisane w sekcji "Tabele plików czcionek" specyfikacji OpenType.
W pozostałej części tego przeglądu przedstawiono szerokość i elastyczność niektórych wizualnie interesujących funkcji OpenType, które są uwidocznione przez właściwości Typography obiektu. Aby uzyskać więcej informacji na temat tego obiektu, zobacz Typography Class (Klasa typografii).
Warianty
Warianty są używane do renderowania różnych stylów typograficznych, takich jak indeksy podekstowe i indeksy dolne.
Indeksy górne i dolne
Właściwość Variants umożliwia ustawianie wartości indeksu górnego i indeksu dolnego dla czcionki OpenType.
Poniższy tekst wyświetla indeksy górne dla czcionki Palatino Linotype.
W poniższym przykładzie znaczników pokazano, jak zdefiniować pismo górne dla czcionki Palatino Linotype, używając właściwości obiektu Typography.
<Paragraph FontFamily="Palatino Linotype">
2<Run Typography.Variants="Superscript">3</Run>
14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>
Poniższy tekst wyświetla indeksy dolne czcionki Palatino Linotype.
W poniższym przykładzie znaczników pokazano, jak można zdefiniować indeksy dolne w czcionce Palatino Linotype przy użyciu właściwości obiektu Typography.
<Paragraph FontFamily="Palatino Linotype">
H<Run Typography.Variants="Subscript">2</Run>O
Footnote<Run Typography.Variants="Subscript">4</Run>
</Paragraph>
Dekoracyjne zastosowania indeksów górnych i indeksów dolnych
Możesz również użyć indeksów górnych i dolnych, aby utworzyć dekoracyjne efekty tekstu mieszanego. Poniższy tekst wyświetla tekst indeksu górnego i indeksu dolnego dla czcionki Palatino Linotype. Należy pamiętać, że wielkie litery nie są zmieniane.
W poniższym przykładzie znaczników pokazano, jak zdefiniować indeksy górne i dolne dla czcionki, używając właściwości obiektu Typography.
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Superscript">
Chapter One
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Subscript">
Chapter One
</Paragraph>
Stolice
Wielkie litery to zestaw form typograficznych, które renderują tekst w wielkich glifach. Zazwyczaj, gdy tekst jest renderowany wielkimi literami, odstępy między literami mogą wydawać się zbyt ciasne, a waga i proporcje liter mogą wydawać się zbyt ciężkie. OpenType obsługuje wiele formatów stylów dla kapitalików, w tym małe kapitaliki, drobne kapitaliki, wersaliki i odstępy międzywersalikowe. Te formaty stylów umożliwiają kontrolowanie wyglądu wielkich liter.
Poniższy tekst wyświetla standardowe wielkie litery dla czcionki Pescadero, a następnie litery stylowane jako "SmallCaps" i "AllSmallCaps". W tym przypadku ten sam rozmiar czcionki jest używany dla wszystkich trzech wyrazów.
W poniższym przykładzie znaczników pokazano, jak zdefiniować litery dla czcionki Pescadero przy użyciu właściwości Typography obiektu. Gdy jest używany format "SmallCaps", każda główna litera jest ignorowana.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
Litery tytułowe
Duże litery tytułowe są lżejsze pod względem wagi i proporcji liter i zaprojektowane tak, aby wyglądały bardziej elegancko niż normalne duże litery. Tytułowe litery są zwykle używane w większych rozmiarach czcionek jako nagłówki. Poniższy tekst wyświetla normalne i kapitaliki tytułowe dla czcionki Pescadero. Zwróć uwagę na węższe szerokości trzonu tekstu w drugim wierszu.
W poniższym przykładzie znaczników pokazano, jak zdefiniować kapitały tytułowe dla czcionki Pescadero przy użyciu właściwości obiektu Typography.
<Paragraph FontFamily="Pescadero">
<Run Typography.Capitals="Titling">chapter one</Run>
</Paragraph>
Odstępy między wielkimi literami
Odstępy między literami to funkcja, która umożliwia zapewnienie większej liczby odstępów w przypadku używania wszystkich liter w tekście. Wielkie litery są zwykle przeznaczone do mieszania z małymi literami. Odstępy, które wydają się atrakcyjne między wielką i małą literą, mogą wyglądać zbyt ściśle, gdy używane są wszystkie wielkie litery. Poniższy tekst wyświetla normalne odstępy między literami czcionki Pescadero.
W poniższym przykładzie znaczników pokazano, jak zdefiniować odstępy między literami czcionki Pescadero przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Pescadero">
<Run Typography.CapitalSpacing="True">CHAPTER ONE</Run>
</Paragraph>
Ligatury
Ligatury to co najmniej dwa glify, które tworzą się w jeden glif w celu utworzenia bardziej czytelnego lub atrakcyjnego tekstu. Czcionki OpenType obsługują cztery typy ligatur:
Ligatury standardowe. Zaprojektowano tak, aby zwiększyć czytelność. Ligatury standardowe obejmują "fi", "fl" i "ff".
Kontekstowe ligatury. Zaprojektowano w celu zwiększenia czytelności przez zapewnianie lepszego zachowania łączenia między znakami tworzącymi ligaturę.
Ligatury uznaniowe. Zaprojektowane z myślą o ozdobie, a nie specjalnie zaprojektowane pod kątem czytelności.
Historyczne ligatury. Zaprojektowano tak, aby był historyczny, a nie specjalnie zaprojektowany pod kątem czytelności.
Poniższy tekst wyświetla standardowe lify ligaturowe dla czcionki Pericles.
W poniższym przykładzie znaczników pokazano, jak zdefiniować standardowe lify ligaturowe dla czcionki Pericles przy użyciu właściwości Typography obiektu.
<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>
Poniższy tekst wyświetla uznaniowe ligatury glyphs dla czcionki Pericles.
Poniższy przykład znaczników pokazuje, jak zdefiniować uznaniowe ligatury glyphs dla czcionki Pericles przy użyciu właściwości Typography obiektu.
<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>
Domyślnie czcionki OpenType w programie Windows Presentation Foundation (WPF) włączają więzadła standardowe. Jeśli na przykład używasz czcionki Palatino Linotype, standardowe ligatury "fi", "ff" i "fl" są wyświetlane jako połączony znak glif. Zwróć uwagę, że para znaków dla każdej standardowej ligatury stykają się ze sobą.
Można jednak wyłączyć standardowe cechy ligatur, tak aby standardowe ligatury, takie jak "ff", były wyświetlane jako dwa osobne znaki graficzne, a nie jako połączony glif.
W poniższym przykładzie znaczników pokazano, jak wyłączyć standardowe lify ligaturowe dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<!-- Set standard ligatures to false in order to disable feature. -->
<Paragraph Typography.StandardLigatures="False" FontFamily="Palatino Linotype" FontSize="72">
fi ff fl
</Paragraph>
Ukośniki
Swashes to ozdobne glify, które używają wyszukanych ozdobników często związanych z kaligrafią. Poniższy tekst wyświetla standardowe i swash glify czcionki Pescadero.
Szeryfy są często używane jako elementy dekoracyjne w krótkich frazach, takich jak ogłoszenia wydarzeń. Poniższy tekst używa ukośników, aby podkreślić wielkie litery nazwy zdarzenia.
W poniższym przykładzie znaczników pokazano, jak zdefiniować ukośniki dla czcionki przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Pescadero" TextBlock.TextAlignment="Center">
Wishing you a<LineBreak/>
<Run Typography.StandardSwashes="1" FontSize="36">Happy New Year!</Run>
</Paragraph>
Kontekstowe ukośniki
Niektóre kombinacje ornamentowanych glifów mogą powodować nieatrakcyjny wygląd, na przykład nakładające się dolne części sąsiednich liter. Użycie kontekstowego szeryfa dekoracyjnego umożliwia zastosowanie zastępczego glifu, który zapewnia lepszy wygląd. Poniższy tekst przedstawia to samo słowo przed zastosowaniem kontekstowego swash i po nim.
W poniższym przykładzie znaczników pokazano, jak zdefiniować kontekstowy ornament czcionki Pescadero przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Pescadero" Typography.StandardSwashes="1">
Lyon <Run Typography.ContextualSwashes="1">L</Run>yon
</Paragraph>
Zastępców
Alternatywne to glify, które można zastąpić standardowym glifem. Czcionki OpenType, takie jak czcionka Pericles używana w poniższych przykładach, mogą zawierać alternatywne glify, których można użyć do tworzenia różnych wyglądów tekstu. Poniższy tekst wyświetla standardowe glify czcionki Pericles.
Czcionka Pericles OpenType zawiera dodatkowe glify, które zapewniają stylistyczne alternatywy dla standardowego zestawu glifów. Poniższy tekst wyświetla stylistyczne alternatywne glify.
Poniższy przykład znaczników pokazuje, jak definiować stylistyczne alternatywy glifów dla czcionki Pericles, używając właściwości obiektu Typography.
<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>
Poniższy tekst zawiera kilkanaście innych alternatywnych stylistycznych glifów dla czcionki Pericles.
Poniższy przykład znaczników pokazuje, jak zdefiniować te inne stylistyczne alternatywne glify.
<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>
Losowe alternatywne kontekstowe
Losowe kontekstowe alternatywy zapewniają wiele zamiennych glifów dla pojedynczego znaku. Po zaimplementowaniu przy użyciu czcionek typu skryptu ta funkcja może symulować pisanie ręczne przy użyciu zestawu losowo wybranych glifów z niewielkimi różnicami w wyglądzie. Poniższy tekst używa losowych kontekstowych alternatyw czcionki Lindsey. Zwróć uwagę, że litera "a" różni się nieznacznie w wyglądzie
W poniższym przykładzie znaczników pokazano, jak zdefiniować losowe kontekstowe alternatywy dla czcionki Lindsey przy użyciu właściwości Typography obiektu.
<TextBlock FontFamily="Lindsey">
<Run Typography.ContextualAlternates="True">
a banana in a cabana
</Run>
</TextBlock>
Formularze historyczne
Formy historyczne to konwencje typograficzne, które były powszechne w przeszłości. Poniższy tekst wyświetla frazę "Boston, Massachusetts", używając historycznej formy glifów dla czcionki Palatino Linotype.
Poniższy przykład znaczników przedstawia sposób definiowania form historycznych dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.HistoricalForms="True">Boston, Massachusetts</Run>
</Paragraph>
Style liczbowe
Czcionki OpenType obsługują dużą liczbę funkcji, których można używać z wartościami liczbowymi w tekście.
Frakcji
Czcionki OpenType obsługują formatowanie ułamków, w tym ukośne i ułożone.
Poniższy tekst wyświetla style ułamkowe czcionki Palatino Linotype.
W poniższym przykładzie znaczników pokazano, jak zdefiniować style ułamkowe dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<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>
Stare cyfry stylów
Czcionki OpenType obsługują format liczbowy w stylu starym. Ten format jest przydatny do wyświetlania liczb w stylach, które nie są już standardowe. Poniższy tekst przedstawia datę z XVIII wieku w standardowych i starych formatach liczbowych dla czcionki Palatino Linotype.
Poniższy tekst wyświetla standardowe cyfry kroju pisma Palatino Linotype, a następnie cyfry w starym stylu.
Poniższy przykład znaczników pokazuje, jak zdefiniować cyfry w starym stylu dla czcionki Palatino Linotype, korzystając z właściwości obiektu Typography.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.NumeralStyle="Normal">1234567890</Run>
<Run Typography.NumeralStyle="OldStyle">1234567890</Run>
</Paragraph>
Liczby proporcjonalne i tabelaryczne
Czcionki OpenType obsługują funkcję rysunku proporcjonalnego i tabelarycznego w celu kontrolowania wyrównania szerokości podczas używania liczb. Liczby proporcjonalne traktują każdą liczbę jako o innej szerokości — "1" jest węższa niż "5". Dane tabelaryczne są traktowane jako liczby o równej szerokości, tak aby były wyrównane w pionie, co zwiększa czytelność informacji o typie finansowym.
Poniższy tekst wyświetla dwie proporcjonalne liczby w pierwszej kolumnie przy użyciu czcionki Miramonte. Zwróć uwagę na różnicę szerokości między cyframi "5" i "1". Druga kolumna przedstawia te same dwie wartości liczbowe o szerokościach dostosowanych za pomocą funkcji rysunek tabelaryczny.
Poniższy przykład znaczników przedstawia sposób definiowania proporcjonalnych i tabelarycznych liczb dla czcionki Miramonte przy użyciu właściwości Typography obiektu.
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Proportional">114,131</Run>
</TextBlock>
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Tabular">114,131</Run>
</TextBlock>
Obcięte zero
Czcionki OpenType obsługują obcięty format liczbowy zerowy, aby podkreślić różnicę między literą "O" a cyfrą "0". Obcięta liczba zerowa jest często używana dla identyfikatorów w informacjach finansowych i biznesowych.
Poniższy tekst wyświetla przykładowy identyfikator zamówienia przy użyciu czcionki Miramonte. Pierwszy wiersz używa standardowych liczb. Drugi wiersz użył obciętych liczb zerowych, aby zapewnić lepszy kontrast z wielką literą "O".
W poniższym przykładzie znaczników pokazano, jak zdefiniować obcięte liczby zerowe dla czcionki Miramonte przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Miramonte">
<Run>Order #0048-OTC-390</Run>
<LineBreak/>
<Run Typography.SlashedZero="True">Order #0048-OTC-390</Run>
</Paragraph>
Klasa typografii
Obiekt Typography uwidacznia zestaw funkcji, które obsługuje czcionka OpenType. Ustawiając właściwości Typography w znacznikach, można łatwo tworzyć dokumenty wykorzystujące funkcje OpenType.
Poniższy tekst wyświetla standardowe wielkie litery dla czcionki Pescadero, a następnie litery stylowane jako "SmallCaps" i "AllSmallCaps". W tym przypadku ten sam rozmiar czcionki jest używany dla wszystkich trzech wyrazów.
W poniższym przykładzie znaczników pokazano, jak zdefiniować litery dla czcionki Pescadero przy użyciu właściwości Typography obiektu. Gdy jest używany format "SmallCaps", każda główna litera jest ignorowana.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
Poniższy przykład kodu wykonuje to samo zadanie, co poprzedni przykład kodu znaczników.
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());
MyParagraph.FontFamily = New FontFamily("Pescadero")
MyParagraph.FontSize = 48
Dim run_1 As New Run("CAPITALS ")
MyParagraph.Inlines.Add(run_1)
Dim run_2 As New Run("Capitals ")
run_2.Typography.Capitals = FontCapitals.SmallCaps
MyParagraph.Inlines.Add(run_2)
Dim run_3 As New Run("Capitals")
run_3.Typography.Capitals = FontCapitals.AllSmallCaps
MyParagraph.Inlines.Add(run_3)
MyParagraph.Inlines.Add(New LineBreak())
Właściwości klasy typografii
W poniższej tabeli wymieniono właściwości, wartości i ustawienia Typography domyślne obiektu.
Zobacz także
.NET Desktop feedback