FontFamily Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje rodinu souvisejících písem.
public ref class FontFamily
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.FontFamilyConverter))]
[System.Windows.Localizability(System.Windows.LocalizationCategory.Font)]
public class FontFamily
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.FontFamilyConverter))>]
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Font)>]
type FontFamily = class
Public Class FontFamily
- Dědičnost
-
FontFamily
- Atributy
Poznámky
Rodina písem je sada typů, které sdílejí stejné jméno rodiny, například "Times New Roman", ale liší se ve funkcích. Mezi tyto rozdíly mezi funkcemi patří Stylekurzíva a Weight, například tučné písmo.
Příklad typů, které jsou členy rodiny písem Times New Roman
Většina prvků uživatelského rozhraní, například Button a TextBlock, poskytuje FontFamily vlastnost, kterou lze použít k určení písma pro textový obsah ovládacího prvku. Písmo definujete nastavením této vlastnosti na FontFamily hodnotu. Následující příklady ukazují, jak odkazovat na písmo v jazyce XAML (Extensible Application Markup Language) a v kódu.
myTextBlock.FontFamily = new FontFamily("Comic Sans MS");
myTextBlock.FontFamily = New FontFamily("Comic Sans MS")
<TextBlock FontFamily="Comic Sans MS">Hello, world</TextBlock>
V předchozím příkladu je písmo, na které se odkazuje, "Comic Sans MS", odkazováno jeho popisným názvem. V tomto příkladu se také předpokládá, že písmo je v systémové kolekci písem.
Určení písem v alternativních adresářích
Aplikace Windows Presentation Foundation (WPF) může určit jiný adresář než adresář, který obsahuje kolekci písem systémů, pro překlad odkazů na písmo. Popisný název písma může zadat absolutní hodnotu identifikátoru URI (Uniform Resource Identifier) pro překlad odkazu na písmo, jak je znázorněno v následujících příkladech xaml (Extensible Application Markup Language) a v příkladech kódu.
// Create a new FontFamily object, using an absolute URI reference.
myTextBlock.FontFamily = new FontFamily("file:///d:/MyFonts/#Pericles Light");
' Create a new FontFamily object, using an absolute URI reference.
myTextBlock.FontFamily = New FontFamily("file:///d:/MyFonts/#Pericles Light")
<TextBlock FontFamily="file:///d:/MyFonts/#Pericles Light">
Aegean Sea
</TextBlock>
Popisný název písma může také určovat relativní hodnotu identifikátoru URI, která k překladu odkazu na písmo vyžaduje základní identifikátor URI. Vlastnost BaseUri objektu FontFamily odpovídá základní hodnotě identifikátoru URI. Následující příklad kódu ukazuje, jak vytvořit odkaz na písmo, který se skládá ze základní hodnoty identifikátoru URI a relativní hodnoty identifikátoru URI.
// Create a new FontFamily object, using a base URI reference and a relative URI reference.
myTextBlock.FontFamily = new FontFamily(new Uri("file:///d:/MyFonts/"), "./#Pericles Light");
' Create a new FontFamily object, using a base URI reference and a relative URI reference.
myTextBlock.FontFamily = New FontFamily(New Uri("file:///d:/MyFonts/"), "./#Pericles Light")
Hodnotu základního identifikátoru URI můžete použít, když odkazujete na písmo, které je zabaleno jako součást aplikace. Základní hodnotou identifikátoru URI může být například identifikátor URI "pack://application", který umožňuje odkazovat na písma zabalená jako prostředky aplikace. Následující příklad kódu ukazuje odkaz na písmo, který se skládá ze základní hodnoty identifikátoru URI a relativní hodnoty identifikátoru URI.
// The font resource reference includes the base URI reference (application directory level),
// and a relative URI reference.
myTextBlock.FontFamily = new FontFamily(new Uri("pack://application:,,,/"), "./resources/#Pericles Light");
' The font resource reference includes the base URI reference (application directory level),
' and a relative URI reference.
myTextBlock.FontFamily = New FontFamily(New Uri("pack://application:,,,/"), "./resources/#Pericles Light")
FontFamily Pokud je atribut zadaný jako atribut ve značkách, hodnota základního identifikátoru URI je vždy implicitní – její hodnota je identifikátor URI stránky XAML. Implicitní hodnota základního identifikátoru URI se používá s relativní hodnotou identifikátoru URI v řetězci popisného názvu k získání umístění písma. V následujícím příkladu XAML (Extensible Application Markup Language) si všimněte, že relativní hodnota identifikátoru URI používá notaci "./", což znamená "v aktuální složce" základní hodnoty identifikátoru URI.
<TextBlock FontFamily="./resources/#Pericles Light">
Aegean Sea
</TextBlock>
Aplikace WPF může zabalit písma jako položku obsahu, položku prostředku nebo položku prostředku knihovny. Další informace najdete v tématu Balení písem s aplikacemi.
Záložní písmo
Náhradní písmo označuje automatickou náhradu jiného písma než písma vybraného klientskou aplikací. Pro vyvolání náhradního písma existují dva hlavní důvody:
Písmo zadané klientskou aplikací v systému neexistuje.
Písmo určené klientskou aplikací neobsahuje glyfy potřebné k vykreslení textu.
Ve WPF používá náhradní mechanismus písma jako náhradní písmo výchozí rodinu záložních písem "Globální uživatelské rozhraní". Toto písmo je definováno jako složené písmo, jehož název souboru je GlobalUserInterface.CompositeFont. Další informace o složených písmech najdete v části Složená písma v tomto tématu.
Náhradní mechanismus písma WPF nahrazuje předchozí technologie nahrazování písem Win32.
Definování záložní sekvence písma v kódu
V kódu můžete definovat záložní sekvenci písma, která vám umožní definovat alternativní písmo. Při vytváření objektu FontFamily zadejte pro String parametr více názvů rodin písem oddělených čárkami, například Comic Sans MS, Verdana. Pokud v tomto případě nejsou k dispozici piktogramy z písma Comic Sans MS, použijí se glyfy z písma "Verdana". Pokud ani "Comic Sans MS" ani "Verdana" nemají požadované glyfy, použije se rodina záložních písem písma písma, což je ve výchozím nastavení "Globální uživatelské rozhraní".
Následující příklady ukazují, jak definovat záložní sekvenci písma v jazyce XAML (Extensible Application Markup Language) a v kódu.
myTextBlock.FontFamily = new FontFamily("Comic Sans MS, Verdana");
myTextBlock.FontFamily = New FontFamily("Comic Sans MS, Verdana")
<TextBlock FontFamily="Comic Sans MS, Verdana">Hello, world</TextBlock>
Umístění písma může určit libovolné písmo v záložní sekvenci. V následujících příkladech se na "Pericles Light" odkazuje jako na prostředek aplikace a na "Verdana" se odkazuje jako na člen kolekce systémových písem.
myTextBlock.FontFamily = new FontFamily(new Uri("pack://application:,,,/"), "./resources/#Pericles Light, Verdana");
myTextBlock.FontFamily = New FontFamily(New Uri("pack://application:,,,/"), "./resources/#Pericles Light, Verdana")
<TextBlock FontFamily="./resources/#Pericles Light, Verdana">Aegean Sea</TextBlock>
Složená písma
Platforma WPF poskytuje funkci složeného písma, která umožňuje vytváření vícejazyčných písem v plném rozsahu a aby se zabránilo zobrazování chybějících piktogramů. Složená písma nahrazují propojení písem Win32, záložní písmo, vazbu písma, přidružení písma a mechanismy znaků definovaných koncovým uživatelem (EUDC).
Složená rodina písem je aplikacím k dispozici prostřednictvím FontFamily konstruktorů a Typeface stejně jako jakákoli jiná rodina písem. Každá složená rodina písem má název a stejně jako u jiných písem může poskytovat lokalizované varianty svého názvu ve více jazycích.
Následující příklad značek ukazuje, jak může být složená rodina písem definována jako soubor disku. Tento soubor může být uložen ve výchozím adresáři písem systému Windows stejně jako u jakéhokoli jiného nainstalovaného písma nebo může být odkazován v libovolném umístění zahrnutím jeho identifikátoru URI při odkazování na rodinu podle názvu.
Následující příklad ukazuje značky rodiny písem v ". CompositeFont" soubor.
<FontFamily
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/composite-font"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
Baseline="0.9"
LineSpacing="1.2">
<!-- Name mapping -->
<FontFamily.FamilyNames>
<System:String x:Key="en-US">Global User Interface</System:String>
</FontFamily.FamilyNames>
<!-- Faces to report in font chooser UI -->
<FontFamily.FamilyTypefaces>
<FamilyTypeface
Weight="Normal" Stretch="Normal" Style="Normal"
UnderlinePosition="-0.1" UnderlineThickness="0.05"
StrikethroughPosition="0.3" StrikethroughThickness="0.05"
CapsHeight="0.5" XHeight="0.3" />
<FamilyTypeface
Weight="Bold" Stretch="Normal" Style="Normal"
UnderlinePosition="-0.1" UnderlineThickness="0.05"
StrikethroughPosition="0.3" StrikethroughThickness="0.05"
CapsHeight="0.5" XHeight="0.3" />
</FontFamily.FamilyTypefaces>
<!-- Character to family lookups (in lookup order) -->
<FontFamily.FamilyMaps>
<!--
Basic Latin 0000-007F
Latin-1 Supplement 0080-00FF
Latin Extended-A 0100-017F
Latin Extended-B 0180-024F
IPA Extensions 0250-02AF
Spacing Modifier Letters 02B0-02FF
Combining Diacritics Marks 0300-036F
Greek and Coptic 0370-03FF
Cyrillic 0400-04FF
Cyrillic Supplement 0500-052F
Phonetic Extensions 1D00-1D7F
Latin Extended Additional 1E00-1EFF
Greek Extended 1F00-1FFF
Alpha Pres Forms Latin FB00-FB0F -->
<!-- CHS -->
<FontFamilyMap
Unicode="0000-052F, 1D00-1FFF, FB00-FB0F"
Language="zh-Hans"
Target="Times New Roman"
Scale="1.0" />
<!-- CHT -->
<FontFamilyMap
Unicode="0000-052F, 1D00-1FFF, FB00-FB0F"
Language="zh-Hant"
Target="Times New Roman"
Scale="1.0" />
<!-- Other (include JA and KO) -->
<FontFamilyMap
Unicode="0000-052F, 1D00-1FFF, FB00-FB0F"
Target="Comic Sans MS, Verdana"
Scale="4.0" />
<!--
Armenian 0530-058F
Georgian 10D0-10FF
Alpha Pres Forms Armenian FB10-FB1C -->
<FontFamilyMap
Unicode="0530-058F, 10D0-10FF, FB10-FB1C"
Target="Sylfaen"
Scale="1.0" />
<!-- Other FontFamilyMap elements defined ... -->
</FontFamily.FamilyMaps>
</FontFamily>
Následující čtyři složená písma se zobrazí ve výchozím adresáři písem windows jako součást instalace WPF.
Písmo | Poznámky |
---|---|
GlobalMonospace.CompositeFont | Vykreslí text pomocí monospace písma, například "Courier New" pro znaky latinky. |
GlobalSanSerif.CompositeFont | Vykreslí text pomocí bezpatkového písma, například "Arial" pro znaky latinky. |
GlobalSerif.CompositeFont | Vykreslí text pomocí patkového písma, například "Times New Roman" pro znaky latinky. |
GlobalUserInterface.CompositeFont | Vykreslí text pomocí výchozího písma, například "Times New Roman" pro znaky latinky. |
Použití atributu XAML
<object FontFamily="fontFamilyName"/>
- or -
<object FontFamily="fontFamilyNamesList"/>
- or -
<object FontFamily="fontFamilyFolderReference"/>
- or -
<object FontFamily="fontFamilyUriReference"/>
Hodnoty XAML
fontFamilyName
Řetězec určující název rodiny písem. Příkladem je "Arial"
nebo "Century Gothic"
.
fontFamilyNamesList
Řetězec určující více názvů rodin písem oddělených čárkami (všechny prázdné znaky za čárkou jsou ignorovány). První zadaná rodina písem slouží jako primární rodina písem; následující rodiny písem slouží jako náhradní řady, které se použijí v případech, kdy je primární rodina písem nedostupná nebo není použitelná.
"Arial, Century Gothic"
Například určuje Arial jako primární rodinu písem s Century Gothic jako záložní rodinou písem.
fontFamilyFolderReference
Řetězec určující složku obsahující písmo spolu s názvem rodiny písem. Název složky a rodiny písem jsou oddělené znakem #. Odkaz na složku může být absolutní nebo relativní. Například, "Custom Fonts\#My Custom Font"
.
fontFamilyUriReference
Řetězec určující identifikátor URI (Uniform Resource Identifier) pro písmo spolu s názvem rodiny písem. Identifikátor URI a název rodiny písem jsou oddělené znakem # . Například, "http://MyFontServer/Fonts/#My Custom Font"
.
Konstruktory
FontFamily() |
Inicializuje novou instanci anonymní FontFamily třídy. |
FontFamily(String) |
Inicializuje novou instanci FontFamily třídy ze zadaného názvu rodiny písem. |
FontFamily(Uri, String) |
Inicializuje novou instanci FontFamily třídy ze zadaného názvu rodiny písem a volitelné hodnoty identifikátoru URI (Base Uniform Resource Identifier). |
Vlastnosti
Baseline |
Získá nebo nastaví vzdálenost mezi směrný plán a znak buňky nahoře. |
BaseUri |
Získá identifikátor URI základního jednotného prostředku (URI), který se používá k překladu názvu rodiny písem. |
FamilyMaps |
Získá kolekci FontFamilyMap objektů. |
FamilyNames |
Získá kolekci řetězců a CultureInfo hodnot, které představují názvy rodin písem objektu FontFamily . |
FamilyTypefaces |
Získá kolekci typů pro FontFamily objekt. |
LineSpacing |
Získá nebo nastaví hodnotu řádkování pro FontFamily objekt. Řádkování je doporučená vzdálenost od účaří k účaří pro text v tomto písmu vzhledem k velikosti em. |
Source |
Získá název rodiny písem, který se používá k vytvoření objektu FontFamily . |
Metody
Equals(Object) |
Získá hodnotu, která označuje, zda aktuální rodina písem objektu a zadané rodiny písem jsou stejné. |
GetHashCode() |
Slouží jako hashovací funkce pro FontFamily. Je vhodný pro použití v hashovacích algoritmech a datových strukturách, jako je například hashovací tabulka. |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
GetTypefaces() |
Vrátí kolekci Typeface objektů, které představují tváře typu ve výchozím umístění systémového písma. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí hodnotu Source vlastnosti. |