Språk

FontFamily Klass

Definition

Representerar en familj med relaterade teckensnitt.

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
Arv
FontFamily
Attribut

Kommentarer

En teckensnittsfamilj är en uppsättning typsnitt som delar samma familjenamn, till exempel "Times New Roman", men som skiljer sig åt i funktionerna. Dessa funktionsskillnader omfattar Style, till exempel kursiv stil och Weight, till exempel fetstil.

Teckensnitt Exempel på typsnitt som är medlemmar i teckensnittsfamiljen "Times New Roman"

De flesta användargränssnittselement (UI), till exempel Button och TextBlock, tillhandahåller en FontFamily egenskap som kan användas för att ange ett teckensnitt för textinnehållet i en kontroll. Du definierar teckensnittet genom att ange egenskapen med ett FontFamily värde. Följande exempel visar hur du refererar till ett teckensnitt, i XAML (Extensible Application Markup Language) och i kod.

myTextBlock.FontFamily = new FontFamily("Comic Sans MS");
myTextBlock.FontFamily = New FontFamily("Comic Sans MS")
<TextBlock FontFamily="Comic Sans MS">Hello, world</TextBlock>

I föregående exempel refereras teckensnittet som refereras till , "Comic Sans MS", med sitt eget namn. I det här exemplet antas teckensnittet också finnas i systemteckensnittssamlingen.

Ange teckensnitt i alternativa kataloger

Ett Windows Presentation Foundation-program (WPF) kan ange en annan katalog än katalogen som innehåller systemteckensnittssamlingen för att matcha teckensnittsreferenser. Det egna namnet på teckensnittet kan ange ett absolut URI-värde (Uniform Resource Identifier) för att matcha teckensnittsreferensen, enligt följande XAML (Extensible Application Markup Language) och kodexempel.

// 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>

Det egna namnet på teckensnittet kan också ange ett relativt URI-värde, vilket kräver en bas-URI för att matcha teckensnittsreferensen. Objektets BaseUriFontFamily egenskap motsvarar bas-URI-värdet. I följande kodexempel visas hur du skapar en teckensnittsreferens som består av ett bas-URI-värde och ett relativt URI-värde.

// 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")

Du kan använda ett bas-URI-värde när du refererar till ett teckensnitt som är paketerat som en del av programmet. Till exempel kan bas-URI-värdet vara en "pack://application"-URI, vilket gör att du kan referera till teckensnitt som paketeras som programresurser. I följande kodexempel visas en teckensnittsreferens som består av ett bas-URI-värde och ett relativt URI-värde.

// 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")

När ett FontFamily anges som ett attribut i markering är bas-URI-värdet alltid underförstått – dess värde är URI för XAML-sidan. Det underförstådda bas-URI-värdet används med det relativa URI-värdet i den egna namnsträngen för att hämta teckensnittets plats. I följande XAML-exempel (Extensible Application Markup Language) ser du att det relativa URI-värdet använder notationen "./", vilket betyder "i den aktuella mappen" för bas-URI-värdet.

<TextBlock FontFamily="./resources/#Pericles Light">
  Aegean Sea
</TextBlock>

Ett WPF program kan paketera teckensnitt som antingen ett innehållsobjekt, ett resursobjekt eller ett biblioteksresursobjekt. Mer information finns i Paketera teckensnitt med program.

Tillbakafall för teckensnitt

Återställning av teckensnitt refererar till automatisk ersättning av ett annat teckensnitt än det teckensnitt som väljs av klientprogrammet. Det finns två huvudsakliga orsaker till att återställning av teckensnitt anropas:

  • Det teckensnitt som anges av klientprogrammet finns inte i systemet.

  • Det teckensnitt som anges av klientprogrammet innehåller inte de tecken som krävs för att återge text.

I WPF använder återställningsmekanismen för teckensnitt standardåterställningsteckensnitt, "Globalt användargränssnitt", som ersättningsteckensnitt. Det här teckensnittet definieras som ett sammansatt teckensnitt, vars filnamn är "GlobalUserInterface.CompositeFont". Mer information om sammansatta teckensnitt finns i avsnittet Sammansatta teckensnitt i det här avsnittet.

Återställningsmekanismen för WPF teckensnitt ersätter tidigare Win32-teckensnittsersättningstekniker.

Definiera en återställningssekvens för teckensnitt i kod

Du kan definiera en återställningssekvens för teckensnitt i koden, vilket gör att du kan definiera ett alternativt teckensnitt. När du skapar ett FontFamily objekt anger du flera teckensnittsfamiljenamn, avgränsade med kommatecken, för parametern String , till exempel "Comic Sans MS, Verdana". Om glyferna från typsnittet "Comic Sans MS" inte är tillgängliga används glyfer från typsnittet "Verdana". Om varken "Comic Sans MS" eller "Verdana" har de tecken som krävs används teckensnittsfamiljen för typsnittet, som är "Globalt användargränssnitt" som standard.

I följande exempel visas hur du definierar en återställningssekvens för teckensnitt, i XAML (Extensible Application Markup Language) och i kod.

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>

Något av teckensnitten i återställningssekvensen kan ange teckensnittsplatser. I följande exempel refereras "Perikles Light" som en programresurs och "Verdana" refereras som en medlem i systemteckensnittssamlingen.

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>

Sammansatta teckensnitt

Plattformen WPF innehåller en sammansatt teckensnittsfunktion som gör det möjligt att skapa flerspråkiga teckensnitt i hela skalan och för att undvika att det saknas tecken. Sammansatta teckensnitt ersätter mekanismerna Win32-teckensnittslänkning, återställning av teckensnitt, teckensnittsbindning, teckensnittsassociation och slutanvändarens definierade tecken (EUDC).

En sammansatt teckensnittsfamilj är tillgänglig för program via FontFamily konstruktorerna och Typeface precis som alla andra teckensnittsserier. Varje sammansatt teckensnittsfamilj heter och kan, precis som med andra teckensnitt, tillhandahålla lokaliserade varianter av namnet på flera språk.

Följande markeringsexempel visar hur en sammansatt teckensnittsfamilj kan definieras som en diskfil. Den här filen kan lagras i standardkatalogen Windows teckensnitt som med andra installerade teckensnitt, eller refereras till på valfri plats genom att inkludera dess URI när du refererar till familjen med namn.

I följande exempel visas teckenfamiljens markering i en ". CompositeFont-fil.

<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>

Följande fyra sammansatta teckensnitt visas i standardkatalogen Windows teckensnitt som en del av WPF installationen.

Teckensnitt Notes
GlobalMonospace.CompositeFont Renderar text med hjälp av ett monorymdsteckensnitt, till exempel "Courier New" för latinska tecken.
GlobalSanSerif.CompositeFont Renderar text med hjälp av ett sans serif-teckensnitt, till exempel "Arial" för latinska tecken.
GlobalSerif.CompositeFont Renderar text med hjälp av ett serifteckensnitt, till exempel "Times New Roman" för latinska tecken.
GlobalUserInterface.CompositeFont Renderar text med ett standardteckensnitt, till exempel "Times New Roman" för latinska tecken.

XAML-attributanvändning

<object FontFamily="fontFamilyName"/>
- or -
<object FontFamily="fontFamilyNamesList"/>
- or -
<object FontFamily="fontFamilyFolderReference"/>
- or -
<object FontFamily="fontFamilyUriReference"/>

XAML-värden

fontFamilyName En sträng som anger ett teckensnittsfamiljenamn. Exempel: "Arial" eller "Century Gothic".

fontFamilyNamesList En sträng som anger flera teckensnittsfamiljenamn, var och en avgränsad med ett kommatecken (eventuella blanksteg efter ett kommatecken ignoreras). Den första teckensnittsfamiljen som angetts fungerar som den primära teckensnittsfamiljen. efterföljande teckensnittsfamiljer fungerar som reservfamiljer som ska användas i fall där den primära teckensnittsfamiljen inte är tillgänglig eller inte är tillämplig. Till exempel "Arial, Century Gothic" anger Arial som den primära teckensnittsfamiljen, med Century Gothic som återställningsteckensnittsfamilj.

fontFamilyFolderReference En sträng som anger en mapp som innehåller teckensnittet, tillsammans med ett teckensnittsfamiljenamn. Mapp- och teckensnittsfamiljenamnet avgränsas med ett #-tecken. Mappreferensen kan vara absolut eller relativ. Till exempel "Custom Fonts\#My Custom Font".

fontFamilyUriReference En sträng som anger en enhetlig resursidentifierare (URI) för teckensnittet, tillsammans med ett teckensnittsfamiljenamn. URI och teckensnittsfamiljenamnet avgränsas med ett #-tecken. Till exempel "http://MyFontServer/Fonts/#My Custom Font".

Konstruktorer

Name Description
FontFamily()

Initierar en ny instans av en anonym FontFamily klass.

FontFamily(String)

Initierar en ny instans av FontFamily klassen från det angivna teckensnittsfamiljenamnet.

FontFamily(Uri, String)

Initierar en ny instans av FontFamily klassen från det angivna teckensnittsfamiljenamnet och ett valfritt URI-värde (Base Uniform Resource Identifier).

Egenskaper

Name Description
Baseline

Hämtar eller anger avståndet mellan baslinjen och teckencellens överkant.

BaseUri

Hämtar den grundläggande enhetliga resursidentifieraren (URI) som används för att matcha ett teckensnittsfamiljenamn.

FamilyMaps

Hämtar samlingen med FontFamilyMap objekt.

FamilyNames

Hämtar en samling strängar och CultureInfo värden som representerar teckensnittsfamiljenamnen för FontFamily objektet.

FamilyTypefaces

Hämtar en samling typsnitt för FontFamily objektet.

LineSpacing

Hämtar eller anger radavståndsvärdet för FontFamily objektet. Radavståndet är det rekommenderade baslinje-till-baslinjeavståndet för texten i det här teckensnittet i förhållande till em-storleken.

Source

Hämtar teckensnittsfamiljenamnet som används för att konstruera FontFamily objektet.

Metoder

Name Description
Equals(Object)

Hämtar ett värde som anger om det aktuella teckensnittsfamiljeobjektet och det angivna teckensnittsfamiljeobjektet är samma.

GetHashCode()

Fungerar som en hash-funktion för FontFamily. Den är lämplig för användning i hash-algoritmer och datastrukturer, till exempel en hash-tabell.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetTypefaces()

Returnerar en samling Typeface objekt som representerar typen ansikten på standardplatsen för systemteckensnitt.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar värdet för Source egenskapen.

Gäller för

Se även