FontFamily FontFamily FontFamily FontFamily Class

Definición

Representa una familia de fuentes relacionadas.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
Herencia
FontFamilyFontFamilyFontFamilyFontFamily
Atributos

Comentarios

Una familia de fuentes es un conjunto de tipos de letra que comparten el mismo nombre de familia, como "Times New Roman", pero que tienen diferentes características.A font family is a set of typefaces that share the same family name, such as "Times New Roman", but that differ in features. Estas diferencias incluyen Style, como cursiva, y Weight, como negrita.These feature differences include Style, such as italic, and Weight, such as bold.

FuentesFonts
Ejemplo de tipos de letra que son miembros de la familia de fuentes "Times New Roman"Example of typefaces that are members of the "Times New Roman" font family

La mayoría interfaz de usuario (UI)user interface (UI) elementos, tales como Button y TextBlock, proporcione un FontFamily propiedad que puede usarse para especificar una fuente para el contenido de texto de un control.Most interfaz de usuario (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. La fuente se define estableciendo esa propiedad con un FontFamily valor.You define the font by setting that property with a FontFamily value. Los ejemplos siguientes muestran cómo hacer referencia a una fuente, en Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) y en el código.The following examples show how to reference a font, in Lenguaje 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>

En el ejemplo anterior, se conoce la fuente que se hace referencia, "SAN de cómic MS," por su Nombre_descriptivo.In the preceding example, the font that is referenced, "Comic Sans MS", is referred to by its friendly name. Además, en este ejemplo se supone la fuente esté en la colección de fuentes del sistema.Also, in this example the font is assumed to be in the system font collection.

Especifica las fuentes en directorios alternativosSpecifying Fonts in Alternate Directories

Un Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) aplicación puede especificar un directorio distinto del directorio que contiene la colección de fuentes de sistemas, para resolver las referencias de la fuente.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. El nombre descriptivo de la fuente puede especificar absoluta identificador de recursos uniforme (URI)uniform resource identifier (URI) valor para resolver la referencia de fuente, como se muestra en la siguiente Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) y ejemplos de código.The friendly name of the font can specify an absolute identificador de recursos uniforme (URI)uniform resource identifier (URI) value to resolve the font reference, as shown in the following Lenguaje 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>

El nombre descriptivo de la fuente también puede especificar relativa Identificador URIURI valor, lo que requiere una base de Identificador URIURI para resolver la referencia de fuente.The friendly name of the font can also specify a relative Identificador URIURI value, which requires a base Identificador URIURI to resolve the font reference. El BaseUri propiedad de la FontFamily objeto corresponde a la base de Identificador URIURI valor.The BaseUri property of the FontFamily object corresponds to the base Identificador URIURI value. El ejemplo de código siguiente muestra cómo crear una referencia de fuente que se compone de una base de Identificador URIURI valor y relativa Identificador URIURI valor.The following code example shows how to create a font reference that is composed of a base Identificador URIURI value and a relative Identificador URIURI 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")

Puede usar una base de Identificador URIURI valor cuando se hace referencia a una fuente que se empaqueta como parte de la aplicación.You can use a base Identificador URIURI value when you reference a font that is packaged as part of the application. Por ejemplo, la base de Identificador URIURI valor puede ser un "pack://application" Identificador URIURI, lo que permite hacer referencia a fuentes que se empaquetan como recursos de la aplicación.For example, the base Identificador URIURI value can be a "pack://application" Identificador URIURI, which lets you reference fonts that are packaged as application resources. El ejemplo de código siguiente muestra una referencia de fuente que se compone de una base de Identificador URIURI valor y relativa Identificador URIURI valor.The following code example shows a font reference that is composed of a base Identificador URIURI value and a relative Identificador URIURI 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")

Cuando un FontFamily se especifica como un atributo en el marcado, la base de Identificador URIURI valor siempre es implícito, su valor es el Identificador URIURI de la XAMLXAML página.When a FontFamily is specified as an attribute in markup, the base Identificador URIURI value is always implied - its value is the Identificador URIURI of the XAMLXAML page. La base implícita Identificador URIURI valor se usa con relativa Identificador URIURI valor en la cadena de nombre descriptivo para obtener la ubicación de la fuente.The implied base Identificador URIURI value is used with the relative Identificador URIURI value in the friendly name string to obtain the location of the font. En la siguiente Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) ejemplo, tenga en cuenta que relativa Identificador URIURI valor utiliza el ". /" notación, lo que significa "en la carpeta actual" de la base de Identificador URIURI valor.In the following Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) example, notice that the relative Identificador URIURI value uses the "./" notation, which means "in the current folder" of the base Identificador URIURI value.

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

Un WPFWPF aplicación puede empaquetar fuentes como un elemento de contenido, un elemento de recurso o un elemento de recurso de biblioteca.A WPFWPF application can package fonts as either a content item, a resource item, or a library resource item. Para más información, vea Empaquetar fuentes con aplicaciones.For more information, see Packaging Fonts with Applications.

Reserva de fuentesFont Fallback

Reserva de fuentes se refiere a la sustitución automática de una fuente que no sea la fuente seleccionada por la aplicación cliente.Font fallback refers to the automatic substitution of a font other than the font that is selected by the client application. Hay dos razones principales por qué se invoca la reserva de fuentes:There are two primary reasons why font fallback is invoked:

  • La fuente especificada por la aplicación cliente no existe en el sistema.The font that is specified by the client application does not exist on the system.

  • La fuente especificada por la aplicación cliente no contiene los glifos que se necesitan para representar texto.The font that is specified by the client application does not contain the glyphs that are required to render text.

EnWPFWPF, el mecanismo de reserva de fuente usa la familia de fuentes de reserva predeterminada, "Global User Interface", como la fuente de sustitución.InWPFWPF, the font fallback mechanism uses the default fallback font family, "Global User Interface", as the substitute font. Esta fuente se define como una fuente compuesta, cuyo nombre de archivo es "GlobalUserInterface.CompositeFont".This font is defined as a composite font, whose file name is "GlobalUserInterface.CompositeFont". Para obtener más información acerca de las fuentes compuestas, vea la sección de las fuentes compuestas en este tema.For more information about composite fonts, see the Composite Fonts section in this topic.

El WPFWPF mecanismo de reserva de fuente reemplaza anterior Win32Win32 tecnologías de sustitución de fuentes.The WPFWPF font fallback mechanism replaces previous Win32Win32 font substitution technologies.

Definir una secuencia de reserva de fuentes en el códigoDefining a Font Fallback Sequence in Code

Puede definir una secuencia de reserva de fuentes en el código, lo que le permite definir una fuente alternativa.You can define a font fallback sequence in your code, which lets you define an alternate font. Cuando creas un FontFamily de objetos, proporcionan la fuente varios nombres de familia, separados por comas, para el String parámetro, como "Cómic 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". En este caso, si los glifos desde el tipo de letra "MS Sans de cómic" no están disponibles, se usan los glifos desde el tipo de letra "Verdana".In this case, if the glyphs from the "Comic Sans MS" typeface are not available, glyphs from the "Verdana" typeface are used. Si "MS Sans de cómic" ni "Verdana" tiene los glifos necesarios, la familia de fuentes de reserva del tipo de letra se usa, que es "Global User Interface" de forma predeterminada.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.

Los ejemplos siguientes muestran cómo definir una secuencia de reserva de fuentes en Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML) y en el código.The following examples show how to define a font fallback sequence, in Lenguaje 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>

Cualquiera de las fuentes en la secuencia de reserva puede especificar ubicaciones de fuentes.Any one of the fonts in the fallback sequence can specify font locations. En los ejemplos siguientes, se hace referencia a "Pericles Light" como un recurso de aplicación y "Verdana" se hace referencia como un miembro de colección de fuentes 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>

Fuentes compuestasComposite Fonts

El WPFWPF plataforma proporciona una característica de fuentes compuestas permiten la construcción del intervalo completo de fuentes multilingües y para evitar que se muestren los glifos que faltan.The WPFWPF platform provides a composite font feature to allow the construction of full range multilingual fonts, and to avoid displaying missing glyphs. Las fuentes compuestas reemplazan el Win32Win32 vinculación de fuentes, reserva de fuentes, enlace de fuentes, asociación de fuentes y mecanismos de caracteres definido por el usuario final (EUDC).Composite fonts replace the Win32Win32 font linking, font fallback, font binding, font association, and end-user-defined characters (EUDC) mechanisms.

Está disponible para las aplicaciones a través de una familia de fuentes compuestas el FontFamily y Typeface constructores al igual que cualquier otra familia de fuentes.A composite font family is available to applications through the FontFamily and Typeface constructors just like any other font family. Cada familia de fuentes compuestas es el nombre y, como con otras fuentes, puede proporcionar variantes adaptadas de su nombre en varios idiomas.Each composite font family is named, and, as with other fonts, can provide localized variants of its name in multiple languages.

En el ejemplo de marcación siguiente se muestra cómo se puede definir una familia de fuentes compuestas como un archivo de disco.The following markup example shows how a composite font family can be defined as a disk file. Este archivo se puede almacenar en el valor predeterminado WindowsWindows directorio de fuentes como con cualquier otro instalado fuente, o puede hacer referencia a cualquier ubicación mediante la inclusión de su Identificador URIURI al hacer referencia a la familia por su nombre.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 Identificador URIURI when referencing the family by name.

El ejemplo siguiente muestra el marcado de la familia de fuentes en un ". Archivo 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>

Las fuentes compuestas cuatro siguientes aparecen en el directorio de fuentes de Windows de forma predeterminada como parte de la instalación de WPF.The following four composite fonts appear in the default Windows font directory as part of the WPF installation.

Tipo de letraFont NotasNotes
GlobalMonospace.CompositeFontGlobalMonospace.CompositeFont Presenta el texto mediante el uso de una fuente monoespaciada, por ejemplo, "Courier New" para los caracteres latinos.Renders text by using a monospace font, for example, "Courier New" for Latin characters.
GlobalSanSerif.CompositeFontGlobalSanSerif.CompositeFont Representa el texto mediante el uso de una fuente sans serif, por ejemplo, "Arial" para los caracteres latinos.Renders text by using a sans serif font, for example, "Arial" for Latin characters.
GlobalSerif.CompositeFontGlobalSerif.CompositeFont Presenta el texto mediante el uso de una fuente de serif, por ejemplo, "Times New Roman" para los caracteres latinos.Renders text by using a serif font, for example, "Times New Roman" for Latin characters.
GlobalUserInterface.CompositeFontGlobalUserInterface.CompositeFont Presenta el texto mediante el uso de una fuente predeterminada, por ejemplo, "Times New Roman" para los caracteres latinos.Renders text by using a default font, for example, "Times New Roman" for Latin characters.

Uso de atributos XAMLXAML Attribute Usage

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

Valores XAMLXAML Values

fontFamilyNamefontFamilyName
Cadena que especifica un nombre de familia de fuentes.A string specifying a font family name. Por ejemplo: "Arial" o "Century Gothic".For example, "Arial" or "Century Gothic".

fontFamilyNamesListfontFamilyNamesList
Cadena que especifica varios nombres de familia de fuentes, separados por punto y coma (se omiten los espacios en blanco después de una coma).A string specifying multiple font family names, each separated by a comma (any white space following a comma is ignored). La primera familia de fuentes especificada actúa como la familia de fuentes primaria; familias de fuentes subsiguientes actúan como familias de reserva para su uso en casos donde la familia de fuentes primaria no está disponible o no es aplicable.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. Por ejemplo, "Arial, Century Gothic" especifica Arial como familia de fuentes primaria, con siglo gótica como la familia de fuentes de reserva.For example, "Arial, Century Gothic" specifies Arial as the primary font family, with Century Gothic as the fallback font family.

fontFamilyFolderReferencefontFamilyFolderReference
Cadena que especifica una carpeta que contiene la fuente, junto con un nombre de familia de fuentes.A string specifying a folder containing the font, along with a font family name. La carpeta y el nombre de familia de fuentes se delimitan mediante un carácter #.The folder and font family name are delimited by a # character. La referencia a la carpeta puede ser absoluta o relativa.The folder reference may be absolute, or relative. Por ejemplo: "Custom Fonts\#My Custom Font".For example, "Custom Fonts\#My Custom Font".

fontFamilyUriReferencefontFamilyUriReference
Una cadena que especifica un identificador de recursos uniforme (URI)uniform resource identifier (URI) para la fuente, junto con un nombre de familia de fuentes.A string specifying a identificador de recursos uniforme (URI)uniform resource identifier (URI) for the font, along with a font family name. El Identificador URIURI y nombre de familia de fuentes se delimitan mediante un carácter #.The Identificador URIURI and font family name are delimited by a # character. Por ejemplo: "http://MyFontServer/Fonts/#My Custom Font".For example, "http://MyFontServer/Fonts/#My Custom Font".

Constructores

FontFamily() FontFamily() FontFamily() FontFamily()

Inicializa una nueva instancia de una clase FontFamily anónima.Initializes a new instance of an anonymous FontFamily class.

FontFamily(String) FontFamily(String) FontFamily(String) FontFamily(String)

Inicializa una nueva instancia de la clase FontFamily a partir del nombre de familia de fuentes especificado.Initializes a new instance of the FontFamily class from the specified font family name.

FontFamily(Uri, String) FontFamily(Uri, String) FontFamily(Uri, String) FontFamily(Uri, String)

Inicializa una nueva instancia de la clase FontFamily a partir del nombre de familia de fuentes especificado y un valor de identificador de recursos uniforme (URI)uniform resource identifier (URI) base opcional.Initializes a new instance of the FontFamily class from the specified font family name and an optional base identificador de recursos uniforme (URI)uniform resource identifier (URI) value.

Propiedades

Baseline Baseline Baseline Baseline

Obtiene o establece la distancia entre la línea base y la parte superior de la celda de carácter.Gets or sets the distance between the baseline and the character cell top.

BaseUri BaseUri BaseUri BaseUri

Obtiene el identificador de recursos uniforme (URI)uniform resource identifier (URI) base que se utiliza para resolver el nombre de una familia de fuentes.Gets the base identificador de recursos uniforme (URI)uniform resource identifier (URI) that is used to resolve a font family name.

FamilyMaps FamilyMaps FamilyMaps FamilyMaps

Obtiene la colección de objetos FontFamilyMap.Gets the collection of FontFamilyMap objects.

FamilyNames FamilyNames FamilyNames FamilyNames

Obtiene una colección de cadenas y valores de CultureInfo que representan los nombres de familia de fuentes del objeto FontFamily.Gets a collection of strings and CultureInfo values that represent the font family names of the FontFamily object.

FamilyTypefaces FamilyTypefaces FamilyTypefaces FamilyTypefaces

Obtiene una colección de tipos de letra para el objeto FontFamily.Gets a collection of typefaces for the FontFamily object.

LineSpacing LineSpacing LineSpacing LineSpacing

Obtiene o establece el valor de interlineado para el objeto FontFamily.Gets or sets the line spacing value for the FontFamily object. El interlineado es la distancia recomendada entre las líneas base del texto en esta fuente con respecto al tamaño eme.The line spacing is the recommended baseline-to-baseline distance for the text in this font relative to the em size.

Source Source Source Source

Obtiene el nombre de la familia de fuentes que se utiliza para construir el objeto FontFamily.Gets the font family name that is used to construct the FontFamily object.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Obtiene un valor que indica si el objeto de familia de fuentes actual y el objeto de familia de fuentes especificado son los mismos.Gets a value that indicates whether the current font family object and the specified font family object are the same.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como función hash de FontFamily.Serves as a hash function for FontFamily. Es adecuado para usarlo en algoritmos hash y en estructuras de datos, como las tablas hash.It is suitable for use in hashing algorithms and data structures such as a hash table.

GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
GetTypefaces() GetTypefaces() GetTypefaces() GetTypefaces()

Devuelve una colección de objetos Typeface que representan los tipos de letra en la ubicación de fuentes predeterminada del sistema.Returns a collection of Typeface objects that represent the type faces in the default system font location.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve el valor de la propiedad Source.Returns the value of the Source property.

Se aplica a

Consulte también: