FontFamily Klasa

Definicja

Reprezentuje rodzinę powiązanych czcionek.Represents a family of related fonts.

public ref class FontFamily
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.FontFamilyConverter))]
[System.Windows.Localizability(System.Windows.LocalizationCategory.Font)]
public class FontFamily
type FontFamily = class
Public Class FontFamily
Dziedziczenie
FontFamily
Atrybuty

Uwagi

Rodzina czcionek to zestaw krojów pisma, które mają taką samą nazwę rodziny, jak "Times New Roman", ale różnią się w zależności od funkcji.A font family is a set of typefaces that share the same family name, such as "Times New Roman", but that differ in features. Te różnice między funkcjami obejmują Style, takie jak kursywa i Weight, takie jak pogrubienie.These feature differences include Style, such as italic, and Weight, such as bold.

CzcionkiFonts
Przykład krojów pisma, które są członkami rodziny czcionek "Times New Roman"Example of typefaces that are members of the "Times New Roman" font family

Większość interfejs użytkownika (UI)user interface (UI) elementów, takich jak Button i TextBlock, udostępnia Właściwość FontFamily, której można użyć do określenia czcionki zawartości tekstowej kontrolki.Most interfejs użytkownika (UI)user interface (UI) elements, such as Button and TextBlock, provide a FontFamily property that can be used to specify a font for the text content of a control. Definiowanie czcionki przez ustawienie tej właściwości z wartością FontFamily.You define the font by setting that property with a FontFamily value. W poniższych przykładach pokazano, jak odwoływać się do czcionki w Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) i w kodzie.The following examples show how to reference a font, in Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) and in code.

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

W poprzednim przykładzie czcionka, do której odwołuje się "Comic Sans MS", jest określana na podstawie przyjaznej nazwy.In the preceding example, the font that is referenced, "Comic Sans MS", is referred to by its friendly name. Ponadto w tym przykładzie przyjmuje się, że czcionka jest w kolekcji czcionek systemu.Also, in this example the font is assumed to be in the system font collection.

Określanie czcionek w katalogach alternatywnychSpecifying Fonts in Alternate Directories

Aplikacja Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) może określić katalog, inny niż katalog, który zawiera kolekcję czcionek systemów, w celu rozpoznania odwołań do czcionek.A Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) application can specify a directory, other than the directory that contains the systems font collection, for resolving font references. Przyjazna nazwa czcionki może określać bezwzględną wartość identyfikatora URI (Uniform Resource Identifier) w celu rozpoznania odwołania do czcionki, jak pokazano w poniższych Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) i przykłady kodu.The friendly name of the font can specify an absolute uniform resource identifier (URI) value to resolve the font reference, as shown in the following Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) and code examples.

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

Przyjazna nazwa czcionki może również określać względną wartość identyfikatora URI, która wymaga podstawowego identyfikatora URI w celu rozpoznania odwołania do czcionki.The friendly name of the font can also specify a relative URI value, which requires a base URI to resolve the font reference. Właściwość BaseUri obiektu FontFamily odpowiada podstawowej wartości identyfikatora URI.The BaseUri property of the FontFamily object corresponds to the base URI value. Poniższy przykład kodu pokazuje, jak utworzyć odwołanie do czcionki, która składa się z podstawowej wartości identyfikatora URI i względnej wartości identyfikatora URI.The following code example shows how to create a font reference that is composed of a base URI value and a relative URI value.

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

Podczas odwoływania się do czcionki spakowanej jako część aplikacji można użyć podstawowej wartości identyfikatora URI.You can use a base URI value when you reference a font that is packaged as part of the application. Na przykład podstawowa wartość identyfikatora URI może być identyfikatorem URI "pack://application", który umożliwia odwoływanie się do czcionek spakowanych jako zasoby aplikacji.For example, the base URI value can be a "pack://application" URI, which lets you reference fonts that are packaged as application resources. Poniższy przykład kodu przedstawia odwołanie do czcionki, która składa się z podstawowej wartości identyfikatora URI i względnej wartości identyfikatora URI.The following code example shows a font reference that is composed of a base URI value and a relative URI value.

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

Gdy FontFamily jest określony jako atrybut w znaczniku, podstawowa wartość identyfikatora URI jest zawsze implikowana — jego wartość to identyfikator URI strony XAMLXAML.When a FontFamily is specified as an attribute in markup, the base URI value is always implied - its value is the URI of the XAMLXAML page. Implikowana podstawowa wartość identyfikatora URI jest używana z wartością względnego identyfikatora URI w ciągu przyjaznej nazwy, aby uzyskać lokalizację czcionki.The implied base URI value is used with the relative URI value in the friendly name string to obtain the location of the font. W poniższym przykładzie Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) Zwróć uwagę, że względna wartość identyfikatora URI używa notacji "./", co oznacza "w bieżącym folderze" podstawowej wartości identyfikatora URI.In the following Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) example, notice that the relative URI value uses the "./" notation, which means "in the current folder" of the base URI value.

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

Aplikacja WPFWPF może spakować czcionki jako element zawartości, element zasobu lub element zasobów biblioteki.A WPFWPF application can package fonts as either a content item, a resource item, or a library resource item. Aby uzyskać więcej informacji, zobacz pakowanie czcionek z aplikacjami.For more information, see Packaging Fonts with Applications.

Alternatywa dla czcionkiFont Fallback

Powrót do czcionki odnosi się do automatycznego podstawiania czcionki innej niż czcionka wybrana przez aplikację kliencką.Font fallback refers to the automatic substitution of a font other than the font that is selected by the client application. Istnieją dwa podstawowe przyczyny wywołania powrotu do czcionki:There are two primary reasons why font fallback is invoked:

  • Czcionka określona przez aplikację kliencką nie istnieje w systemie.The font that is specified by the client application does not exist on the system.

  • Czcionka określona przez aplikację kliencką nie zawiera symboli, które są wymagane do renderowania tekstu.The font that is specified by the client application does not contain the glyphs that are required to render text.

WWPFWPFmechanizm powrotu czcionki używa domyślnej, zastosowanej rodziny czcionek, "globalnego interfejsu użytkownika", jako zastępczej czcionki.InWPFWPF, the font fallback mechanism uses the default fallback font family, "Global User Interface", as the substitute font. Ta czcionka jest definiowana jako czcionka złożona, której nazwa pliku to "GlobalUserInterface. CompositeFont".This font is defined as a composite font, whose file name is "GlobalUserInterface.CompositeFont". Aby uzyskać więcej informacji na temat czcionek złożonych, zobacz sekcję czcionki złożone w tym temacie.For more information about composite fonts, see the Composite Fonts section in this topic.

Mechanizm rezerwowy czcionki WPFWPF zastępuje poprzednie Win32Win32 technologii podstawiania czcionek.The WPFWPF font fallback mechanism replaces previous Win32Win32 font substitution technologies.

Definiowanie sekwencji rezerwowej czcionki w kodzieDefining a Font Fallback Sequence in Code

Możesz zdefiniować alternatywną sekwencję czcionki w kodzie, która pozwala na definiowanie alternatywnej czcionki.You can define a font fallback sequence in your code, which lets you define an alternate font. Podczas tworzenia obiektu FontFamily, podaj wiele nazw rodzin czcionek, oddzielonych przecinkami, dla parametru String, takich jak "Comic Sans MS, Verdana".When you create a FontFamily object, provide multiple font family names, separated by commas, for the String parameter, such as "Comic Sans MS, Verdana". W takim przypadku, jeśli glify z kroju pisma "Comic Sans MS" nie są dostępne, używane są glify z kroju pisma "Verdana".In this case, if the glyphs from the "Comic Sans MS" typeface are not available, glyphs from the "Verdana" typeface are used. Jeśli żadne "Comic Sans MS" ani "Verdana" nie mają wymaganych glifów, zostanie użyta Rodzina czcionek z czcionką alternatywną, która domyślnie jest "interfejsem użytkownika globalnego".If neither "Comic Sans MS" nor "Verdana" have the required glyphs, the fallback font family of the typeface is used, which is "Global User Interface" by default.

W poniższych przykładach pokazano, jak zdefiniować sekwencję alternatywną czcionek, w Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) i w kodzie.The following examples show how to define a font fallback sequence, in Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) and in code.

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>

Każda z czcionek w sekwencji rezerwowej może określać lokalizacje czcionek.Any one of the fonts in the fallback sequence can specify font locations. W poniższych przykładach "Pericles Light" jest przywoływany jako zasób aplikacji, a "Verdana" jest przywoływany jako składowa kolekcji czcionek systemowych.In the following examples, "Pericles Light" is referenced as an application resource, and "Verdana" is referenced as a system font collection member.

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>

Czcionki złożoneComposite Fonts

Platforma WPFWPF udostępnia funkcję czcionki złożonej, umożliwiającą tworzenie pełnych, wielojęzycznych czcionek, i aby uniknąć wyświetlania brakujących glifów.The WPFWPF platform provides a composite font feature to allow the construction of full range multilingual fonts, and to avoid displaying missing glyphs. Czcionki złożone zastępują Win32Win32 łączenia, powrotu czcionek, powiązania czcionki, skojarzenia czcionki i znaków zdefiniowanych przez użytkownika końcowego (EUDC).Composite fonts replace the Win32Win32 font linking, font fallback, font binding, font association, and end-user-defined characters (EUDC) mechanisms.

Rodzina czcionek kompozytowych jest dostępna dla aplikacji za pomocą konstruktorów FontFamily i Typeface tak samo jak w przypadku każdej innej rodziny czcionek.A composite font family is available to applications through the FontFamily and Typeface constructors just like any other font family. Każda rodzina czcionek kompozytowych ma nazwę i, podobnie jak w przypadku innych czcionek, może zapewnić zlokalizowane warianty jego nazwy w wielu językach.Each composite font family is named, and, as with other fonts, can provide localized variants of its name in multiple languages.

Poniższy przykład znacznika pokazuje, jak Rodzina czcionek złożonych może być zdefiniowana jako plik dysku.The following markup example shows how a composite font family can be defined as a disk file. Ten plik może być przechowywany w domyślnym katalogu czcionek WindowsWindows jak w przypadku każdej innej zainstalowanej czcionki lub można się do niego odwoływać w dowolnej lokalizacji przez uwzględnienie jej identyfikatora URI podczas odwoływania się do rodziny według nazwy.This file can be stored in the default WindowsWindows font directory as with any other installed font, or can be referenced in any location by including its URI when referencing the family by name.

Poniższy przykład pokazuje znakowanie rodziny czcionek w ". Plik CompositeFont.The following example shows the font family markup in a ".CompositeFont" file.

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

Poniższe cztery czcionki kompozytowe pojawiają się w domyślnym katalogu czcionek systemu Windows w ramach instalacji WPF.The following four composite fonts appear in the default Windows font directory as part of the WPF installation.

FontFont UwagiNotes
GlobalMonospace.CompositeFontGlobalMonospace.CompositeFont Renderuje tekst przy użyciu czcionki o stałej szerokości, na przykład "Courier New" dla znaków łacińskich.Renders text by using a monospace font, for example, "Courier New" for Latin characters.
GlobalSanSerif.CompositeFontGlobalSanSerif.CompositeFont Renderuje tekst przy użyciu czcionki Sans Serif, na przykład "Arial" dla znaków łacińskich.Renders text by using a sans serif font, for example, "Arial" for Latin characters.
GlobalSerif.CompositeFontGlobalSerif.CompositeFont Renderuje tekst przy użyciu jednoszeryfowej czcionki, na przykład "Times New Roman" dla znaków łacińskich.Renders text by using a serif font, for example, "Times New Roman" for Latin characters.
GlobalUserInterface.CompositeFontGlobalUserInterface.CompositeFont Renderuje tekst przy użyciu domyślnej czcionki, na przykład "Times New Roman" dla znaków łacińskich.Renders text by using a default font, for example, "Times New Roman" for Latin characters.

Użycie atrybutu języka XAMLXAML Attribute Usage

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

Wartości XAMLXAML Values

fontFamilyNamefontFamilyName
Ciąg określający nazwę rodziny czcionek.A string specifying a font family name. Na przykład "Arial" lub "Century Gothic".For example, "Arial" or "Century Gothic".

fontFamilyNamesListfontFamilyNamesList
Ciąg określający wiele nazw rodzin czcionek, z których każda oddzielona przecinkami (dowolny biały znak po przecinku jest ignorowany).A string specifying multiple font family names, each separated by a comma (any white space following a comma is ignored). Pierwsza określona Rodzina czcionek służy jako Rodzina czcionek głównych. kolejne rodziny czcionek służą jako rodziny powrotu do użycia w przypadkach, gdy główna Rodzina czcionek jest niedostępna lub nie ma zastosowania.The first font family specified serves as the primary font family; subsequent font families serve as fallback families to be used in cases where the primary font family is unavailable or not applicable. Na przykład "Arial, Century Gothic" określa czcionkę Arial jako rodzinę czcionek podstawowych, z Century Gothic jako rodziną czcionek rezerwowych.For example, "Arial, Century Gothic" specifies Arial as the primary font family, with Century Gothic as the fallback font family.

fontFamilyFolderReferencefontFamilyFolderReference
Ciąg określający folder zawierający czcionkę wraz z nazwą rodziny czcionek.A string specifying a folder containing the font, along with a font family name. Nazwa folderu i rodziny czcionek są rozdzielane znakami #.The folder and font family name are delimited by a # character. Odwołanie do folderu może być bezwzględne lub względne.The folder reference may be absolute, or relative. Na przykład "Custom Fonts\#My Custom Font".For example, "Custom Fonts\#My Custom Font".

fontFamilyUriReferencefontFamilyUriReference
Ciąg określający jednolity identyfikator zasobów (URI) dla czcionki oraz nazwę rodziny czcionek.A string specifying a uniform resource identifier (URI) for the font, along with a font family name. Identyfikator URI i Nazwa rodziny czcionek są rozdzielane znakami #.The URI and font family name are delimited by a # character. Na przykład "http://MyFontServer/Fonts/#My Custom Font".For example, "http://MyFontServer/Fonts/#My Custom Font".

Konstruktory

FontFamily()

Inicjuje nowe wystąpienie anonimowej klasy FontFamily.Initializes a new instance of an anonymous FontFamily class.

FontFamily(String)

Inicjuje nowe wystąpienie klasy FontFamily z określonej nazwy rodziny czcionek.Initializes a new instance of the FontFamily class from the specified font family name.

FontFamily(Uri, String)

Inicjuje nowe wystąpienie klasy FontFamily z określonej nazwy rodziny czcionek i opcjonalnego identyfikatora Uniform Resource Identifier (URI).Initializes a new instance of the FontFamily class from the specified font family name and an optional base uniform resource identifier (URI) value.

Właściwości

Baseline

Pobiera lub ustawia odległość między linią bazową a górną komórką znaku.Gets or sets the distance between the baseline and the character cell top.

BaseUri

Pobiera podstawowy Uniform Resource Identifier (URI), który jest używany do rozpoznawania nazwy rodziny czcionek.Gets the base uniform resource identifier (URI) that is used to resolve a font family name.

FamilyMaps

Pobiera kolekcję obiektów FontFamilyMap.Gets the collection of FontFamilyMap objects.

FamilyNames

Pobiera kolekcję ciągów i CultureInfo wartości, które reprezentują nazwy rodziny czcionek obiektu FontFamily.Gets a collection of strings and CultureInfo values that represent the font family names of the FontFamily object.

FamilyTypefaces

Pobiera kolekcję krojów pisma dla obiektu FontFamily.Gets a collection of typefaces for the FontFamily object.

LineSpacing

Pobiera lub ustawia wartość odstępu między wierszami dla obiektu FontFamily.Gets or sets the line spacing value for the FontFamily object. Interlinia to zalecana odległość linia bazowa do linii bazowej dla tekstu w tej czcionce względem rozmiaru em.The line spacing is the recommended baseline-to-baseline distance for the text in this font relative to the em size.

Source

Pobiera nazwę rodziny czcionek, która jest używana do konstruowania obiektu FontFamily.Gets the font family name that is used to construct the FontFamily object.

Metody

Equals(Object)

Pobiera wartość wskazującą, czy bieżący obiekt rodziny czcionek i określony obiekt rodziny czcionek są takie same.Gets a value that indicates whether the current font family object and the specified font family object are the same.

GetHashCode()

Służy jako funkcja skrótu dla FontFamily.Serves as a hash function for FontFamily. Jest to odpowiednie do użycia w algorytmach wyznaczania wartości skrótu i struktur danych, takich jak tabela skrótów.It is suitable for use in hashing algorithms and data structures such as a hash table.

GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
GetTypefaces()

Zwraca kolekcję obiektów Typeface, które reprezentują twarze typu w domyślnej lokalizacji czcionki systemowej.Returns a collection of Typeface objects that represent the type faces in the default system font location.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca wartość właściwości Source.Returns the value of the Source property.

Dotyczy

Zobacz też