FontFamily Clase

Definición

Representa una familia de fuentes relacionadas.

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
Herencia
FontFamily
Atributos

Comentarios

Una familia de fuentes es un conjunto de tipos de letras que comparten el mismo nombre de familia, como "Times New Roman", pero que difieren en las características. Estas diferencias de características incluyen Style, como cursiva, y Weight, como negrita.

Fuentes
Ejemplo de tipos de letras que son miembros de la familia de fuentes "Times New Roman"

La mayoría de los elementos de la interfaz de usuario (UI), como Button y TextBlock, proporcionan una FontFamily propiedad que se puede usar para especificar una fuente para el contenido de texto de un control. Para definir la fuente, establezca esa propiedad con un FontFamily valor. En los ejemplos siguientes se muestra cómo hacer referencia a una fuente, en Lenguaje de marcado extensible de aplicaciones (XAML) y en código.

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, la fuente a la que se hace referencia, "Comic Sans MS", se conoce por su nombre descriptivo. Además, en este ejemplo se supone que la fuente está en la colección de fuentes del sistema.

Especificar fuentes en directorios alternativos

Una aplicación de Windows Presentation Foundation (WPF) puede especificar un directorio distinto del directorio que contiene la colección de fuentes del sistema para resolver las referencias de fuente. El nombre descriptivo de la fuente puede especificar un valor de identificador uniforme de recursos (URI) absoluto para resolver la referencia de fuente, como se muestra en los siguientes ejemplos de código y lenguaje de marcado de aplicaciones extensibles (XAML).

// 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 un valor de URI relativo, que requiere un URI base para resolver la referencia de fuente. La BaseUri propiedad del FontFamily objeto corresponde al valor de URI base. En el ejemplo de código siguiente se muestra cómo crear una referencia de fuente compuesta por un valor de URI base y un valor de URI relativo.

// 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 un valor de URI base al hacer referencia a una fuente empaquetada como parte de la aplicación. Por ejemplo, el valor del URI base puede ser un URI de "pack://application", que permite hacer referencia a fuentes empaquetadas como recursos de aplicación. En el ejemplo de código siguiente se muestra una referencia de fuente compuesta por un valor de URI base y un valor de URI relativo.

// 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 se especifica como FontFamily un atributo en el marcado, el valor del URI base siempre está implícito: su valor es el URI de la página XAML. El valor de URI base implícito se usa con el valor de URI relativo en la cadena de nombre descriptivo para obtener la ubicación de la fuente. En el siguiente ejemplo de Lenguaje de marcado de aplicación extensible (XAML), observe que el valor de URI relativo usa la notación "./", lo que significa "en la carpeta actual" del valor de URI base.

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

Una aplicación WPF puede empaquetar fuentes como un elemento de contenido, un elemento de recurso o un elemento de recurso de biblioteca. Para más información, vea Empaquetar fuentes con aplicaciones.

Reserva de fuentes

La reserva de fuentes hace referencia a la sustitución automática de una fuente distinta de la fuente seleccionada por la aplicación cliente. Hay dos razones principales por las que se invoca la reserva de fuentes:

  • La fuente especificada por la aplicación cliente no existe en el sistema.

  • La fuente especificada por la aplicación cliente no contiene los glifos necesarios para representar texto.

En WPF, el mecanismo de reserva de fuentes usa la familia de fuentes de reserva predeterminada, "Interfaz de usuario global", como fuente sustituida. Esta fuente se define como una fuente compuesta, cuyo nombre de archivo es "GlobalUserInterface.CompositeFont". Para obtener más información sobre las fuentes compuestas, vea la sección Fuentes compuestas de este tema.

El mecanismo de reserva de fuentes WPF reemplaza las tecnologías anteriores de sustitución de fuentes win32.

Definición de una secuencia de reserva de fuentes en el código

Puede definir una secuencia de reserva de fuentes en el código, lo que le permite definir una fuente alternativa. Al crear un FontFamily objeto, proporcione varios nombres de familia de fuentes, separados por comas, para el String parámetro , como "Comic Sans MS, Verdana". En este caso, si los glifos del tipo de letra "Comic Sans MS" no están disponibles, se usan glifos del tipo de letra "Verdana". Si ni "Comic Sans MS" ni "Verdana" tienen los glifos necesarios, se usa la familia de fuentes de reserva del tipo de letra, que es "Interfaz de usuario global" de forma predeterminada.

En los ejemplos siguientes se muestra cómo definir una secuencia de reserva de fuente, en Lenguaje de marcado de aplicación extensible (XAML) y en código.

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 de la secuencia de reserva puede especificar ubicaciones de fuente. En los ejemplos siguientes, se hace referencia a "Pericles Light" como un recurso de aplicación y se hace referencia a "Verdana" como miembro de la colección de fuentes del sistema.

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 compuestas

La plataforma WPF proporciona una característica de fuente compuesta para permitir la construcción de fuentes multilingües de gama completa y evitar mostrar glifos que faltan. Las fuentes compuestas reemplazan la vinculación de fuentes Win32, la reserva de fuentes, el enlace de fuentes, la asociación de fuentes y los mecanismos de caracteres definidos por el usuario final (EUDC).

Una familia de fuentes compuestas está disponible para las aplicaciones a través de los FontFamily constructores y Typeface como cualquier otra familia de fuentes. Cada familia de fuentes compuestas se denomina y, al igual que con otras fuentes, puede proporcionar variantes localizadas de su nombre en varios idiomas.

En el ejemplo de marcado siguiente se muestra cómo se puede definir una familia de fuentes compuestas como un archivo de disco. Este archivo se puede almacenar en el directorio de fuentes predeterminado de Windows como con cualquier otra fuente instalada, o se puede hacer referencia a él en cualquier ubicación incluyendo su URI al hacer referencia a la familia por nombre.

En el ejemplo siguiente se muestra el marcado de la familia de fuentes en ". Archivo CompositeFont".

<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 cuatro fuentes compuestas siguientes aparecen en el directorio de fuentes predeterminado de Windows como parte de la instalación de WPF.

Fuente Notas
GlobalMonospace.CompositeFont Representa texto mediante una fuente monoespacial, por ejemplo, "Courier New" para caracteres latinos.
GlobalSanSerif.CompositeFont Representa el texto mediante una fuente sans serif, por ejemplo, "Arial" para caracteres latinos.
GlobalSerif.CompositeFont Representa el texto mediante una fuente serif, por ejemplo, "Times New Roman" para caracteres latinos.
GlobalUserInterface.CompositeFont Representa el texto mediante una fuente predeterminada, por ejemplo, "Times New Roman" para caracteres latinos.

Uso de atributos XAML

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

Valores XAML

fontFamilyName
Cadena que especifica un nombre de familia de fuentes.  Por ejemplo, "Arial" o "Century Gothic".

fontFamilyNamesList
Cadena que especifica varios nombres de familia de fuentes, cada uno separado por una coma (se omite cualquier espacio en blanco después de una coma). La primera familia de fuentes especificada actúa como familia de fuentes principal; las familias de fuentes posteriores sirven como familias de reserva que se usarán en los casos en los que la familia de fuentes principal no está disponible o no es aplicable. Por ejemplo, "Arial, Century Gothic" especifica Arial como familia de fuentes principal, con Century Gothic como familia de fuentes de reserva.

fontFamilyFolderReference
Cadena que especifica una carpeta que contiene la fuente, junto con un nombre de familia de fuentes. El nombre de la carpeta y la familia de fuentes se delimitan mediante un carácter # . La referencia de carpeta puede ser absoluta o relativa. Por ejemplo, "Custom Fonts\#My Custom Font".

fontFamilyUriReference
Cadena que especifica un identificador uniforme de recursos (URI) para la fuente, junto con un nombre de familia de fuentes. El URI y el nombre de familia de fuente se delimitan mediante un carácter # . Por ejemplo, "http://MyFontServer/Fonts/#My Custom Font".

Constructores

FontFamily()

Inicializa una nueva instancia de una clase FontFamily anónima.

FontFamily(String)

Inicializa una nueva instancia de la clase FontFamily a partir del nombre de familia de fuentes especificado.

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 uniforme de recursos (URI) base opcional.

Propiedades

Baseline

Obtiene o establece la distancia entre la línea base y la parte superior de la celda de carácter.

BaseUri

Obtiene el identificador uniforme de recursos (URI) base que se usa para resolver un nombre de familia de fuentes.

FamilyMaps

Obtiene la colección de objetos FontFamilyMap.

FamilyNames

Obtiene una colección de cadenas y valores de CultureInfo que representan los nombres de familia de fuentes del objeto FontFamily.

FamilyTypefaces

Obtiene una colección de tipos de letra para el objeto FontFamily.

LineSpacing

Obtiene o establece el valor de interlineado para el objeto FontFamily. El interlineado es la distancia recomendada entre las líneas base del texto en esta fuente con respecto al tamaño eme.

Source

Obtiene el nombre de la familia de fuentes que se utiliza para construir el objeto FontFamily.

Métodos

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.

GetHashCode()

Sirve como función hash de FontFamily. Es adecuado para usarlo en algoritmos hash y en estructuras de datos, como las tablas hash.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetTypefaces()

Devuelve una colección de objetos Typeface que representan los tipos de letra en la ubicación de fuentes predeterminada del sistema.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve el valor de la propiedad Source.

Se aplica a

Consulte también