FontFamily Třída

Definice

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ísma písma
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.

Platí pro

Viz také