FontFamily Classe

Definizione

Rappresenta una famiglia di tipi di carattere correlati.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
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.FontFamilyConverter))>]
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Font)>]
type FontFamily = class
Public Class FontFamily
Ereditarietà
FontFamily
Attributi

Commenti

Una famiglia di caratteri è un set di caratteri tipografici che condividono lo stesso nome di famiglia, ad esempio "Times New Roman", ma che si differenziano per le funzionalità.A font family is a set of typefaces that share the same family name, such as "Times New Roman", but that differ in features. Queste differenze tra le funzionalità includono Style , ad esempio corsivo, e Weight , ad esempio grassetto.These feature differences include Style, such as italic, and Weight, such as bold.

Tipi di carattereFonts
Esempio di caratteri tipografici membri della famiglia di caratteri "Times New Roman"Example of typefaces that are members of the "Times New Roman" font family

La maggior parte interfaccia utenteuser interface (UI) degli elementi, ad esempio Button e TextBlock , forniscono una FontFamily proprietà che può essere usata per specificare un tipo di carattere per il contenuto di testo di un controllo.Most interfaccia utenteuser 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. Per definire il tipo di carattere, impostare la proprietà con un FontFamily valore.You define the font by setting that property with a FontFamily value. Negli esempi seguenti viene illustrato come fare riferimento a un tipo di carattere, in Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) e nel codice.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>

Nell'esempio precedente, il tipo di carattere a cui viene fatto riferimento, "Comic Sans MS", viene definito dal nome descrittivo.In the preceding example, the font that is referenced, "Comic Sans MS", is referred to by its friendly name. Inoltre, in questo esempio si presuppone che il tipo di carattere si trovi nella raccolta di tipi di carattere di sistema.Also, in this example the font is assumed to be in the system font collection.

Specifica di tipi di carattere nelle directory alternativeSpecifying Fonts in Alternate Directories

Un' Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) applicazione può specificare una directory, diversa dalla directory che contiene la raccolta di tipi di carattere Systems, per la risoluzione dei riferimenti ai tipi di carattere.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. Il nome descrittivo del tipo di carattere può specificare un valore URI (Uniform Resource Identifier) assoluto per risolvere il riferimento al tipo di carattere, come illustrato negli Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) esempi di codice e seguenti.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>

Il nome descrittivo del tipo di carattere può inoltre specificare un valore URI relativo, che richiede un URI di base per risolvere il riferimento al tipo di carattere.The friendly name of the font can also specify a relative URI value, which requires a base URI to resolve the font reference. La BaseUri proprietà dell' FontFamily oggetto corrisponde al valore dell'URI di base.The BaseUri property of the FontFamily object corresponds to the base URI value. Nell'esempio di codice seguente viene illustrato come creare un riferimento al tipo di carattere composto da un valore URI di base e un valore URI relativo.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")

È possibile utilizzare un valore URI di base quando si fa riferimento a un tipo di carattere incluso nell'applicazione.You can use a base URI value when you reference a font that is packaged as part of the application. Il valore URI di base, ad esempio, può essere un URI "pack://application", che consente di fare riferimento a tipi di carattere inclusi nel pacchetto come risorse dell'applicazione.For example, the base URI value can be a "pack://application" URI, which lets you reference fonts that are packaged as application resources. Nell'esempio di codice seguente viene illustrato un riferimento al tipo di carattere composto da un valore URI di base e un valore URI relativo.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")

Quando un oggetto FontFamily viene specificato come attributo nel markup, il valore dell'URI di base è sempre implicito e il relativo valore è l'URI della XAMLXAML pagina.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. Il valore URI di base implicito viene usato con il valore URI relativo nella stringa del nome descrittivo per ottenere il percorso del tipo di carattere.The implied base URI value is used with the relative URI value in the friendly name string to obtain the location of the font. Nell'esempio seguente si Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) noti che il valore URI relativo utilizza la notazione "./", che significa "nella cartella corrente" del valore URI di base.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>

Un' WPFWPF applicazione può creare un pacchetto di tipi di carattere come un elemento di contenuto, un elemento di risorsa o un elemento di risorsa della libreria.A WPFWPF application can package fonts as either a content item, a resource item, or a library resource item. Per altre informazioni, vedere Includere i tipi di carattere nel pacchetto delle applicazioni.For more information, see Packaging Fonts with Applications.

Fallback del tipo di carattereFont Fallback

Il fallback del tipo di carattere si riferisce alla sostituzione automatica di un tipo di carattere diverso dal tipo di carattere selezionato dall'applicazione client.Font fallback refers to the automatic substitution of a font other than the font that is selected by the client application. Esistono due motivi principali per cui viene richiamato il fallback del tipo di carattere:There are two primary reasons why font fallback is invoked:

  • Il tipo di carattere specificato dall'applicazione client non esiste nel sistema.The font that is specified by the client application does not exist on the system.

  • Il tipo di carattere specificato dall'applicazione client non contiene i glifi necessari per il rendering del testo.The font that is specified by the client application does not contain the glyphs that are required to render text.

In WPFWPF il meccanismo di fallback dei tipi di carattere utilizza la famiglia di caratteri di fallback predefinita "interfaccia utente globale" come carattere sostitutivo.InWPFWPF, the font fallback mechanism uses the default fallback font family, "Global User Interface", as the substitute font. Questo tipo di carattere viene definito come tipo di carattere composito, il cui nome file è "carattere GlobalUserInterface. CompositeFont".This font is defined as a composite font, whose file name is "GlobalUserInterface.CompositeFont". Per ulteriori informazioni sui tipi di carattere compositi, vedere la sezione relativa ai tipi di carattere compositi in questo argomento.For more information about composite fonts, see the Composite Fonts section in this topic.

Il WPFWPF meccanismo di fallback dei tipi di carattere sostituisce le Win32Win32 tecnologie di sostituzione dei caratteri precedenti.The WPFWPF font fallback mechanism replaces previous Win32Win32 font substitution technologies.

Definizione di una sequenza di fallback dei tipi di carattere nel codiceDefining a Font Fallback Sequence in Code

È possibile definire una sequenza di fallback dei tipi di carattere nel codice, che consente di definire un tipo di carattere alternativo.You can define a font fallback sequence in your code, which lets you define an alternate font. Quando si crea un FontFamily oggetto, specificare più nomi di famiglia di caratteri separati da virgole per il String parametro, ad esempio "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". In questo caso, se i glifi del carattere tipografico "Comic Sans MS" non sono disponibili, vengono usati i glifi del carattere tipografico "Verdana".In this case, if the glyphs from the "Comic Sans MS" typeface are not available, glyphs from the "Verdana" typeface are used. Se nessuno dei due "Comic Sans MS" o "Verdana" ha i glifi necessari, viene usata la famiglia di caratteri di fallback del carattere tipografico, ovvero "Global User Interface" per impostazione predefinita.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.

Negli esempi seguenti viene illustrato come definire una sequenza di fallback dei tipi di carattere, in Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) e nel codice.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>

Uno qualsiasi dei tipi di carattere nella sequenza di fallback può specificare i percorsi dei tipi di carattere.Any one of the fonts in the fallback sequence can specify font locations. Negli esempi seguenti viene fatto riferimento a "Pericle Light" come risorsa dell'applicazione e viene fatto riferimento a "Verdana" come membro della raccolta dei tipi di carattere del sistema.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>

Tipi di carattere compositoComposite Fonts

La WPFWPF piattaforma fornisce una funzionalità di tipo carattere composito per consentire la costruzione di tipi di carattere multilingue a intervalli completi ed evitare la visualizzazione di glifi mancanti.The WPFWPF platform provides a composite font feature to allow the construction of full range multilingual fonts, and to avoid displaying missing glyphs. I tipi di carattere compositi sostituiscono i meccanismi di collegamento, fallback dei tipi di carattere, associazione dei tipi Win32Win32 di carattere e caratteri definiti dall'utente finale (EUDC).Composite fonts replace the Win32Win32 font linking, font fallback, font binding, font association, and end-user-defined characters (EUDC) mechanisms.

Una famiglia di caratteri composita è disponibile per le applicazioni tramite i FontFamily Typeface costruttori e esattamente come qualsiasi altra famiglia di caratteri.A composite font family is available to applications through the FontFamily and Typeface constructors just like any other font family. Ogni famiglia di caratteri compositi è denominata e, come con altri tipi di carattere, può fornire varianti localizzate del nome in più lingue.Each composite font family is named, and, as with other fonts, can provide localized variants of its name in multiple languages.

L'esempio di markup seguente mostra come è possibile definire una famiglia di caratteri composita come file su disco.The following markup example shows how a composite font family can be defined as a disk file. Questo file può essere archiviato nella directory del WindowsWindows tipo di carattere predefinito come con qualsiasi altro tipo di carattere installato oppure può essere usato come riferimento in qualsiasi posizione includendo il relativo URI quando si fa riferimento alla famiglia in base al nome.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.

Nell'esempio seguente viene illustrato il markup della famiglia di caratteri in un oggetto ". File 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>

I quattro tipi di carattere compositi seguenti vengono visualizzati nella directory predefinita del tipo di carattere di Windows come parte dell'installazione di WPF.The following four composite fonts appear in the default Windows font directory as part of the WPF installation.

CarattereFont NoteNotes
GlobalMonospace. CompositeFontGlobalMonospace.CompositeFont Esegue il rendering del testo utilizzando un tipo di carattere a spaziatura fissa, ad esempio, "Courier New" per i caratteri latini.Renders text by using a monospace font, for example, "Courier New" for Latin characters.
GlobalSanSerif. CompositeFontGlobalSanSerif.CompositeFont Esegue il rendering del testo utilizzando un tipo di carattere sans serif, ad esempio, "Arial" per i caratteri latini.Renders text by using a sans serif font, for example, "Arial" for Latin characters.
GlobalSerif. CompositeFontGlobalSerif.CompositeFont Esegue il rendering del testo utilizzando un tipo di carattere serif, ad esempio, "Times New Roman" per i caratteri latini.Renders text by using a serif font, for example, "Times New Roman" for Latin characters.
Carattere GlobalUserInterface. CompositeFontGlobalUserInterface.CompositeFont Esegue il rendering del testo utilizzando un tipo di carattere predefinito, ad esempio, "Times New Roman" per i caratteri latini.Renders text by using a default font, for example, "Times New Roman" for Latin characters.

Uso della sintassi XAML per gli attributiXAML Attribute Usage

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

Valori XAMLXAML Values

fontFamilyNamefontFamilyName
Stringa che specifica il nome della famiglia di caratteri.A string specifying a font family name. Ad esempio, "Arial" o "Century Gothic".For example, "Arial" or "Century Gothic".

fontFamilyNamesListfontFamilyNamesList
Stringa che specifica più nomi di famiglia di caratteri separati da una virgola (tutti gli spazi vuoti che seguono una virgola vengono ignorati).A string specifying multiple font family names, each separated by a comma (any white space following a comma is ignored). La prima famiglia di caratteri specificata funge da gruppo di caratteri primario. le famiglie di caratteri successive servono come famiglie di fallback da usare nei casi in cui la famiglia di caratteri primaria non è disponibile o non è applicabile.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. Ad esempio, "Arial, Century Gothic" specifica Arial come famiglia di caratteri primaria, con Century Gothic come famiglia di caratteri di fallback.For example, "Arial, Century Gothic" specifies Arial as the primary font family, with Century Gothic as the fallback font family.

fontFamilyFolderReferencefontFamilyFolderReference
Stringa che specifica una cartella che contiene il tipo di carattere, insieme al nome di una famiglia di caratteri.A string specifying a folder containing the font, along with a font family name. La cartella e il nome della famiglia di caratteri sono delimitati da un carattere #.The folder and font family name are delimited by a # character. Il riferimento alla cartella può essere assoluto o relativo.The folder reference may be absolute, or relative. Ad esempio: "Custom Fonts\#My Custom Font".For example, "Custom Fonts\#My Custom Font".

fontFamilyUriReferencefontFamilyUriReference
Stringa che specifica un URI (Uniform Resource Identifier) per il tipo di carattere, insieme al nome di una famiglia di caratteri.A string specifying a uniform resource identifier (URI) for the font, along with a font family name. L'URI e il nome della famiglia di caratteri sono delimitati da un carattere #.The URI and font family name are delimited by a # character. Ad esempio: "http://MyFontServer/Fonts/#My Custom Font".For example, "http://MyFontServer/Fonts/#My Custom Font".

Costruttori

FontFamily()

Inizializza una nuova istanza di una classe FontFamily anonima.Initializes a new instance of an anonymous FontFamily class.

FontFamily(String)

Inizializza una nuova istanza della classe FontFamily in base al nome di famiglia di caratteri specificato.Initializes a new instance of the FontFamily class from the specified font family name.

FontFamily(Uri, String)

Inizializza una nuova istanza della classe FontFamily in base al nome di famiglia di caratteri specificato e a un valore URI (Uniform Resource Identifier) di base facoltativo.Initializes a new instance of the FontFamily class from the specified font family name and an optional base uniform resource identifier (URI) value.

Proprietà

Baseline

Ottiene o imposta la distanza tra la linea di base e la parte superiore della cella del carattere.Gets or sets the distance between the baseline and the character cell top.

BaseUri

Ottiene l'URI (Uniform Resource Identifier) di base usato per risolvere un nome di famiglia di caratteri.Gets the base uniform resource identifier (URI) that is used to resolve a font family name.

FamilyMaps

Ottiene la raccolta di oggetti FontFamilyMap.Gets the collection of FontFamilyMap objects.

FamilyNames

Ottiene un insieme di stringhe e di valori CultureInfo che rappresentano i nomi di famiglia di caratteri dell'oggetto FontFamily.Gets a collection of strings and CultureInfo values that represent the font family names of the FontFamily object.

FamilyTypefaces

Ottiene un insieme di caratteri tipografici per l'oggetto FontFamily.Gets a collection of typefaces for the FontFamily object.

LineSpacing

Ottiene o imposta il valore di interlinea per l'oggetto FontFamily.Gets or sets the line spacing value for the FontFamily object. L'interlinea è la distanza indicata tra una linea di base e l'altra per il testo in questo tipo di carattere, relativa alla dimensione em.The line spacing is the recommended baseline-to-baseline distance for the text in this font relative to the em size.

Source

Ottiene il nome della famiglia di caratteri utilizzato per costruire l'oggetto FontFamily.Gets the font family name that is used to construct the FontFamily object.

Metodi

Equals(Object)

Ottiene un valore che indica se la famiglia di caratteri corrente e la famiglia di caratteri specificata sono equivalenti o meno.Gets a value that indicates whether the current font family object and the specified font family object are the same.

GetHashCode()

Usato come funzione hash per FontFamily.Serves as a hash function for FontFamily. Adatto per l'uso in algoritmi hash e in strutture dei dati, ad esempio una tabella hash.It is suitable for use in hashing algorithms and data structures such as a hash table.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
GetTypefaces()

Restituisce un insieme di oggetti Typeface che rappresentano i caratteri tipografici nel percorso del carattere di sistema predefinito.Returns a collection of Typeface objects that represent the type faces in the default system font location.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce il valore della proprietà Source.Returns the value of the Source property.

Si applica a

Vedi anche