FontFamily Classe

Définition

Représente une famille de polices associées.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
Héritage
FontFamily
Attributs

Remarques

Une famille de polices est un ensemble de polices qui partagent le même nom de famille, par exemple « Times New Roman », mais qui diffèrent dans les fonctionnalités.A font family is a set of typefaces that share the same family name, such as "Times New Roman", but that differ in features. Ces différences de fonctionnalités incluent Style, comme italique, et Weight, comme le gras.These feature differences include Style, such as italic, and Weight, such as bold.

PolicesFonts
Exemple de polices qui sont membres de la famille de polices « Times New Roman »Example of typefaces that are members of the "Times New Roman" font family

La plupart des interface utilisateur (UI)user interface (UI) éléments, tels que Button et TextBlock, fournissent une propriété FontFamily qui peut être utilisée pour spécifier une police pour le contenu de texte d’un contrôle.Most interface utilisateur (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. Vous définissez la police en affectant à cette propriété une valeur FontFamily.You define the font by setting that property with a FontFamily value. Les exemples suivants montrent comment référencer une police, dans langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML) et dans le code.The following examples show how to reference a font, in langage XAML (eXtensible Application Markup Language)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>

Dans l’exemple précédent, la police référencée « Comic sans MS » est référencée par son nom convivial.In the preceding example, the font that is referenced, "Comic Sans MS", is referred to by its friendly name. En outre, dans cet exemple, la police est supposée se trouver dans la collection de polices système.Also, in this example the font is assumed to be in the system font collection.

Spécification des polices dans d’autres répertoiresSpecifying Fonts in Alternate Directories

Une application Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) peut spécifier un répertoire autre que le répertoire qui contient la collection de polices Systems, pour la résolution des références de police.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. Le nom convivial de la police peut spécifier une valeur d’URI (Uniform Resource Identifier) absolue pour résoudre la référence de police, comme illustré dans les langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML) et exemples de code suivants.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 langage XAML (eXtensible Application Markup Language)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>

Le nom convivial de la police peut également spécifier une valeur d’URI relative, qui requiert un URI de base pour résoudre la référence de police.The friendly name of the font can also specify a relative URI value, which requires a base URI to resolve the font reference. La propriété BaseUri de l’objet FontFamily correspond à la valeur de l’URI de base.The BaseUri property of the FontFamily object corresponds to the base URI value. L’exemple de code suivant montre comment créer une référence de police qui est composée d’une valeur d’URI de base et d’une valeur URI relative.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")

Vous pouvez utiliser une valeur d’URI de base lorsque vous référencez une police empaquetée dans le cadre de l’application.You can use a base URI value when you reference a font that is packaged as part of the application. Par exemple, la valeur d’URI de base peut être un URI « pack://application », ce qui vous permet de référencer des polices qui sont empaquetées comme ressources d’application.For example, the base URI value can be a "pack://application" URI, which lets you reference fonts that are packaged as application resources. L’exemple de code suivant montre une référence de police qui est composée d’une valeur d’URI de base et d’une valeur URI relative.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")

Lorsqu’un FontFamily est spécifié en tant qu’attribut dans le balisage, la valeur de l’URI de base est toujours implicite. sa valeur est l’URI de la page de 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. La valeur d’URI de base implicite est utilisée avec la valeur d’URI relative dans la chaîne de nom convivial pour obtenir l’emplacement de la police.The implied base URI value is used with the relative URI value in the friendly name string to obtain the location of the font. Dans l’exemple de langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML) suivant, Notez que la valeur d’URI relative utilise la notation « ./ », ce qui signifie « dans le dossier actif » de la valeur de l’URI de base.In the following langage XAML (eXtensible Application Markup Language)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>

Une application WPFWPF peut empaqueter des polices sous la forme d’un élément de contenu, d’un élément de ressource ou d’un élément de ressource de bibliothèque.A WPFWPF application can package fonts as either a content item, a resource item, or a library resource item. Pour plus d’informations, consultez Empaquetage de polices avec des applications.For more information, see Packaging Fonts with Applications.

Police de secoursFont Fallback

La police de substitution fait référence à la substitution automatique d’une police autre que la police sélectionnée par l’application cliente.Font fallback refers to the automatic substitution of a font other than the font that is selected by the client application. Il existe deux raisons principales pour lesquelles la police de secours est appelée :There are two primary reasons why font fallback is invoked:

  • La police spécifiée par l’application cliente n’existe pas sur le système.The font that is specified by the client application does not exist on the system.

  • La police spécifiée par l’application cliente ne contient pas les glyphes requis pour le rendu du texte.The font that is specified by the client application does not contain the glyphs that are required to render text.

DansWPFWPF, le mécanisme de substitution de police utilise la famille de polices de secours par défaut, « interface utilisateur globale », comme police de substitution.InWPFWPF, the font fallback mechanism uses the default fallback font family, "Global User Interface", as the substitute font. Cette police est définie en tant que police composite, dont le nom de fichier est « GlobalUserInterface. CompositeFont ».This font is defined as a composite font, whose file name is "GlobalUserInterface.CompositeFont". Pour plus d’informations sur les polices composites, consultez la section polices composites dans cette rubrique.For more information about composite fonts, see the Composite Fonts section in this topic.

Le mécanisme de police de secours WPFWPF remplace les technologies de substitution de police Win32Win32 précédentes.The WPFWPF font fallback mechanism replaces previous Win32Win32 font substitution technologies.

Définition d’une séquence de police de secours dans le codeDefining a Font Fallback Sequence in Code

Vous pouvez définir une séquence de polices de secours dans votre code, ce qui vous permet de définir une police alternative.You can define a font fallback sequence in your code, which lets you define an alternate font. Lorsque vous créez un objet FontFamily, fournissez plusieurs noms de famille de polices, séparés par des virgules, pour le paramètre String, tel que « 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". Dans ce cas, si les glyphes de la police « Comic sans MS » ne sont pas disponibles, les glyphes de la police « Verdana » sont utilisés.In this case, if the glyphs from the "Comic Sans MS" typeface are not available, glyphs from the "Verdana" typeface are used. Si ni « Comic sans MS » ni « Verdana » ne possèdent les glyphes requis, la famille de polices de secours de la police est utilisée, qui est « interface utilisateur globale » par défaut.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.

Les exemples suivants montrent comment définir une séquence de substitution de police, dans langage XAML (eXtensible Application Markup Language)Extensible Application Markup Language (XAML) et dans le code.The following examples show how to define a font fallback sequence, in langage XAML (eXtensible Application Markup Language)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>

L’une des polices de la séquence de secours peut spécifier des emplacements de police.Any one of the fonts in the fallback sequence can specify font locations. Dans les exemples suivants, « Pericles Light » est référencé en tant que ressource d’application, et « Verdana » est référencé en tant que membre de collection de polices système.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>

Polices compositesComposite Fonts

La plateforme WPFWPF fournit une fonctionnalité de police composite pour permettre la construction de polices multilingues à plage complète, et pour éviter d’afficher des glyphes manquants.The WPFWPF platform provides a composite font feature to allow the construction of full range multilingual fonts, and to avoid displaying missing glyphs. Les polices composites remplacent les mécanismes de liaison de police Win32Win32, de substitution de police, de liaison de police, d’association de police et de caractères définis par l’utilisateur final (EUDC).Composite fonts replace the Win32Win32 font linking, font fallback, font binding, font association, and end-user-defined characters (EUDC) mechanisms.

Une famille de polices composite est disponible pour les applications via les constructeurs FontFamily et Typeface comme n’importe quelle autre famille de polices.A composite font family is available to applications through the FontFamily and Typeface constructors just like any other font family. Chaque famille de polices composite est nommée et, comme avec d’autres polices, peut fournir des variantes localisées de son nom dans plusieurs langues.Each composite font family is named, and, as with other fonts, can provide localized variants of its name in multiple languages.

L’exemple de balisage suivant montre comment une famille de polices composite peut être définie comme un fichier disque.The following markup example shows how a composite font family can be defined as a disk file. Ce fichier peut être stocké dans le répertoire par défaut WindowsWindows font comme avec toute autre police installée, ou peut être référencé à n’importe quel emplacement en incluant son URI lors du référencement de la famille par son nom.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.

L’exemple suivant montre le balisage de la famille de polices dans un «». 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>

Les quatre polices composites suivantes s’affichent dans le répertoire de polices Windows par défaut dans le cadre de l’installation de WPF.The following four composite fonts appear in the default Windows font directory as part of the WPF installation.

PoliceFont NotesNotes
GlobalMonospace.CompositeFontGlobalMonospace.CompositeFont Restitue le texte à l’aide d’une police à espacement fixe, par exemple « Courier New » pour les caractères latins.Renders text by using a monospace font, for example, "Courier New" for Latin characters.
GlobalSanSerif.CompositeFontGlobalSanSerif.CompositeFont Restitue le texte à l’aide d’une police sans serif, par exemple, « Arial » pour les caractères latins.Renders text by using a sans serif font, for example, "Arial" for Latin characters.
GlobalSerif.CompositeFontGlobalSerif.CompositeFont Restitue le texte à l’aide d’une police serif, par exemple « Times New Roman » pour les caractères latins.Renders text by using a serif font, for example, "Times New Roman" for Latin characters.
GlobalUserInterface.CompositeFontGlobalUserInterface.CompositeFont Restitue le texte à l’aide d’une police par défaut, par exemple « Times New Roman » pour les caractères latins.Renders text by using a default font, for example, "Times New Roman" for Latin characters.

Utilisation d'attributs XAMLXAML Attribute Usage

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

Valeurs XAMLXAML Values

fontFamilyNamefontFamilyName
Chaîne spécifiant un nom de famille de polices.A string specifying a font family name. Par exemple, "Arial" ou "Century Gothic".For example, "Arial" or "Century Gothic".

fontFamilyNamesListfontFamilyNamesList
Chaîne spécifiant plusieurs noms de famille de polices, séparés par une virgule (tout espace blanc après une virgule est ignoré).A string specifying multiple font family names, each separated by a comma (any white space following a comma is ignored). La première famille de polices spécifiée sert de famille de polices principale ; les familles de polices suivantes servent de familles de secours à utiliser dans les cas où la famille de polices principale n’est pas disponible ou n’est pas applicable.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. Par exemple, "Arial, Century Gothic" spécifie Arial comme famille de polices principale, avec Century Gothic comme famille de polices de secours.For example, "Arial, Century Gothic" specifies Arial as the primary font family, with Century Gothic as the fallback font family.

fontFamilyFolderReferencefontFamilyFolderReference
Chaîne spécifiant un dossier contenant la police, ainsi qu’un nom de famille de polices.A string specifying a folder containing the font, along with a font family name. Le nom de la famille de polices et le dossier sont délimités par un caractère #.The folder and font family name are delimited by a # character. La référence de dossier peut être absolue ou relative.The folder reference may be absolute, or relative. Par exemple, "Custom Fonts\#My Custom Font".For example, "Custom Fonts\#My Custom Font".

fontFamilyUriReferencefontFamilyUriReference
Chaîne spécifiant un URI (Uniform Resource Identifier) pour la police, ainsi qu’un nom de famille de polices.A string specifying a uniform resource identifier (URI) for the font, along with a font family name. L’URI et le nom de famille de polices sont délimités par un caractère #.The URI and font family name are delimited by a # character. Par exemple, "http://MyFontServer/Fonts/#My Custom Font".For example, "http://MyFontServer/Fonts/#My Custom Font".

Constructeurs

FontFamily()

Initialise une nouvelle instance d'une classe anonyme FontFamily.Initializes a new instance of an anonymous FontFamily class.

FontFamily(String)

Initialise une nouvelle instance de la classe FontFamily à partir du nom de famille de polices spécifié.Initializes a new instance of the FontFamily class from the specified font family name.

FontFamily(Uri, String)

Initialise une nouvelle instance de la classe FontFamily à partir du nom de famille de polices spécifié et d’une valeur d’URI (Uniform Resource Identifier) de base facultative.Initializes a new instance of the FontFamily class from the specified font family name and an optional base uniform resource identifier (URI) value.

Propriétés

Baseline

Obtient ou définit la distance entre la ligne de base et le haut de la cellule de caractère.Gets or sets the distance between the baseline and the character cell top.

BaseUri

Obtient l’URI (Uniform Resource Identifier) de base utilisé pour résoudre un nom de famille de polices.Gets the base uniform resource identifier (URI) that is used to resolve a font family name.

FamilyMaps

Obtient la collection d'objets FontFamilyMap.Gets the collection of FontFamilyMap objects.

FamilyNames

Obtient une collection de chaînes et de valeurs CultureInfo qui représentent les noms de famille de polices de l'objet FontFamily.Gets a collection of strings and CultureInfo values that represent the font family names of the FontFamily object.

FamilyTypefaces

Obtient une collection de types de caractères pour l'objet FontFamily.Gets a collection of typefaces for the FontFamily object.

LineSpacing

Obtient ou définit la valeur d'interligne pour l'objet FontFamily.Gets or sets the line spacing value for the FontFamily object. L'interligne est la distance recommandée de ligne de base à ligne de base pour le texte dans cette police, par rapport à la taille exprimée en em.The line spacing is the recommended baseline-to-baseline distance for the text in this font relative to the em size.

Source

Obtient le nom de famille de polices qui est utilisé pour construire l'objet FontFamily.Gets the font family name that is used to construct the FontFamily object.

Méthodes

Equals(Object)

Obtient une valeur qui indique si l'objet de la famille de polices actuel et l'objet de la famille de polices spécifié sont identiques.Gets a value that indicates whether the current font family object and the specified font family object are the same.

GetHashCode()

Sert de fonction de hachage pour FontFamily.Serves as a hash function for FontFamily. Cette fonction convient à une utilisation dans des algorithmes de hachage et des structures de données comme une table de hachage.It is suitable for use in hashing algorithms and data structures such as a hash table.

GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
GetTypefaces()

Renvoie une collection d'objets Typeface qui représentent les caractères dans l'emplacement de polices système par défaut.Returns a collection of Typeface objects that represent the type faces in the default system font location.

MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Retourne la valeur de la propriété Source.Returns the value of the Source property.

S’applique à

Voir aussi