FontFamily Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma família de fontes 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
- Herança
-
FontFamily
- Atributos
Comentários
Uma família de fontes é um conjunto de tipos que compartilham o mesmo nome de família, como "Times New Roman", mas que diferem nas características. Essas diferenças de recursos incluem Style, como itálico e Weight, como negrito.
Exemplo de tipos que são membros da família de fontes "Times New Roman"
A maioria dos elementos da interface do usuário, como Button e TextBlock, fornece uma FontFamily propriedade que pode ser usada para especificar uma fonte para o conteúdo de texto de um controle. Defina a fonte definindo essa propriedade com um FontFamily valor. Os exemplos a seguir mostram como fazer referência a uma fonte, em XAML (Extensible Application Markup Language) e no código.
myTextBlock.FontFamily = new FontFamily("Comic Sans MS");
myTextBlock.FontFamily = New FontFamily("Comic Sans MS")
<TextBlock FontFamily="Comic Sans MS">Hello, world</TextBlock>
No exemplo anterior, a fonte referenciada, "Comic Sans MS", é referenciada pelo nome amigável. Além disso, neste exemplo, supõe-se que a fonte esteja na coleção de fontes do sistema.
Especificando fontes em diretórios alternativos
Um aplicativo de Windows Presentation Foundation (WPF) pode especificar um diretório, diferente do diretório que contém a coleção de fontes de sistemas, para resolver referências de fonte. O nome amigável da fonte pode especificar um valor de URI (identificador de recurso uniforme) absoluto para resolve a referência de fonte, conforme mostrado nos exemplos de código e XAML (Extensible Application Markup Language) a seguir.
// 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>
O nome amigável da fonte também pode especificar um valor de URI relativo, que requer um URI base para resolve a referência de fonte. A BaseUri propriedade do FontFamily objeto corresponde ao valor de URI base. O exemplo de código a seguir mostra como criar uma referência de fonte composta por um valor de URI base e um 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")
Você pode usar um valor de URI base ao referenciar uma fonte que é empacotada como parte do aplicativo. Por exemplo, o valor de URI base pode ser um URI "pack://application", que permite referenciar fontes que são empacotadas como recursos de aplicativo. O exemplo de código a seguir mostra uma referência de fonte composta por um valor de URI base e um 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")
Quando um FontFamily é especificado como um atributo na marcação, o valor de URI base é sempre implícito – seu valor é o URI da página XAML. O valor de URI base implícito é usado com o valor de URI relativo na cadeia de caracteres de nome amigável para obter o local da fonte. No exemplo de XAML (Extensible Application Markup Language) a seguir, observe que o valor de URI relativo usa a notação "./", que significa "na pasta atual" do valor de URI base.
<TextBlock FontFamily="./resources/#Pericles Light">
Aegean Sea
</TextBlock>
Um aplicativo WPF pode empacotar fontes como um item de conteúdo, um item de recurso ou um item de recurso de biblioteca. Para obter mais informações, consulte Empacotando fontes com aplicativos.
Fallback de fonte
Fallback de fonte refere-se à substituição automática de uma fonte diferente da fonte selecionada pelo aplicativo cliente. Há dois motivos principais pelos quais o fallback de fonte é invocado:
A fonte especificada pelo aplicativo cliente não existe no sistema.
A fonte especificada pelo aplicativo cliente não contém os glifos necessários para renderizar texto.
No WPF, o mecanismo de fallback de fonte usa a família de fontes de fallback padrão, "Interface global do usuário", como a fonte substituta. Essa fonte é definida como uma fonte composta, cujo nome de arquivo é "GlobalUserInterface.CompositeFont". Para obter mais informações sobre fontes compostas, consulte a seção Fontes compostas neste tópico.
O mecanismo de fallback de fonte do WPF substitui as tecnologias anteriores de substituição de fonte win32.
Definindo uma sequência de fallback de fonte no código
Você pode definir uma sequência de fallback de fonte em seu código, o que permite definir uma fonte alternativa. Ao criar um FontFamily objeto, forneça vários nomes de família de fontes, separados por vírgulas, para o String parâmetro , como "Comic Sans MS, Verdana". Nesse caso, se os glifos da face de tipo "Comic Sans MS" não estiverem disponíveis, os glifos da face de tipo "Verdana" serão usados. Se nem "Comic Sans MS" nem "Verdana" tiverem os glifos necessários, a família de fontes de fallback da face de tipo será usada, que é "Interface global do usuário" por padrão.
Os exemplos a seguir mostram como definir uma sequência de fallback de fonte, em XAML (Extensible Application Markup Language) e em 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>
Qualquer uma das fontes na sequência de fallback pode especificar locais de fonte. Nos exemplos a seguir, "Péricles Light" é referenciado como um recurso de aplicativo e "Verdana" é referenciado como um membro da coleção de fontes do 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>
Fontes compostas
A plataforma WPF fornece um recurso de fonte composta para permitir a construção de fontes multilíngues de intervalo completo e para evitar a exibição de glifos ausentes. As fontes compostas substituem os mecanismos de vinculação de fonte win32, fallback de fonte, associação de fonte, associação de fontes e caracteres definidos pelo usuário final (EUDC).
Uma família de fontes compostas está disponível para aplicativos por meio dos FontFamily construtores e Typeface , assim como qualquer outra família de fontes. Cada família de fontes compostas é nomeada e, como acontece com outras fontes, pode fornecer variantes localizadas de seu nome em vários idiomas.
O exemplo de marcação a seguir mostra como uma família de fontes compostas pode ser definida como um arquivo de disco. Esse arquivo pode ser armazenado no diretório de fonte padrão do Windows como com qualquer outra fonte instalada ou pode ser referenciado em qualquer local, incluindo seu URI ao referenciar a família pelo nome.
O exemplo a seguir mostra a marcação da família de fontes em um ". Arquivo 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>
As quatro fontes compostas a seguir aparecem no diretório de fonte padrão do Windows como parte da instalação do WPF.
Fonte | Observações |
---|---|
GlobalMonospace.CompositeFont | Renderiza o texto usando uma fonte de monospace, por exemplo, "Courier New" para caracteres latinos. |
GlobalSanSerif.CompositeFont | Renderiza o texto usando uma fonte sans serif, por exemplo, "Arial" para caracteres latinos. |
GlobalSerif.CompositeFont | Renderiza o texto usando uma fonte serif, por exemplo, "Times New Roman" para caracteres latinos. |
GlobalUserInterface.CompositeFont | Renderiza o texto usando uma fonte padrão, por exemplo, "Times New Roman" para caracteres latinos. |
Uso do Atributo XAML
<object FontFamily="fontFamilyName"/>
- or -
<object FontFamily="fontFamilyNamesList"/>
- or -
<object FontFamily="fontFamilyFolderReference"/>
- or -
<object FontFamily="fontFamilyUriReference"/>
Valores XAML
fontFamilyName
Uma cadeia de caracteres que especifica um nome de família de fontes. Por exemplo, "Arial"
ou "Century Gothic"
.
fontFamilyNamesList
Uma cadeia de caracteres que especifica vários nomes de família de fontes, cada um separado por uma vírgula (qualquer espaço em branco após uma vírgula é ignorado). A primeira família de fontes especificada serve como a família de fontes primária; as famílias de fontes subsequentes servem como famílias de fallback para serem usadas nos casos em que a família de fontes primária não está disponível ou não é aplicável. Por exemplo, "Arial, Century Gothic"
especifica Arial como a família de fontes primária, com Century Gothic como a família de fontes de fallback.
fontFamilyFolderReference
Uma cadeia de caracteres que especifica uma pasta que contém a fonte, juntamente com um nome de família de fontes. A pasta e o nome da família de fontes são delimitados por um caractere # . A referência de pasta pode ser absoluta ou relativa. Por exemplo, "Custom Fonts\#My Custom Font"
.
fontFamilyUriReference
Uma cadeia de caracteres que especifica um URI (uniform resource identifier) para a fonte, juntamente com um nome de família de fontes. O URI e o nome da família de fontes são delimitados por um caractere # . Por exemplo, "http://MyFontServer/Fonts/#My Custom Font"
.
Construtores
FontFamily() |
Inicializa uma nova instância de uma classe FontFamily anônima. |
FontFamily(String) |
Inicializa uma nova instância da classe FontFamily do nome da família de fontes especificado. |
FontFamily(Uri, String) |
Inicializa uma nova instância da classe FontFamily do nome da família de fontes especificado e um valor de URI (Uniform Resource Identifier) de base opcional. |
Propriedades
Baseline |
Obtém ou define a distância entre a linha de base e a parte superior da célula do caractere. |
BaseUri |
Obtém o URI (Uniform Resource Identifier) de base usado para resolver um nome da família de fontes. |
FamilyMaps |
Obtém a coleção de objetos FontFamilyMap. |
FamilyNames |
Obtém uma coleção de cadeias de caracteres e valores CultureInfo que representam os nomes das famílias de fontes do objeto FontFamily. |
FamilyTypefaces |
Obtém uma coleção de fates de tipo para o objeto FontFamily. |
LineSpacing |
Obtém ou define o valor de espaçamento de linha para o objeto FontFamily. O espaçamento de linha é a distância da linha de base para linha de base recomendada para o texto nesta fonte com relação ao tamanho em. |
Source |
Obtém o nome da família de fontes que é usada para construir o objeto FontFamily. |
Métodos
Equals(Object) |
Obtém um valor que indica se o objeto de família de fontes atual e o especificado são os mesmos. |
GetHashCode() |
Serve como uma função de hash para FontFamily. Ele é adequado para uso em algoritmos de hash e estruturas de dados como uma tabela de hash. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
GetTypefaces() |
Retorna uma coleção de objetos Typeface que representam as faces de tipo no local de fontes padrão do sistema. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna o valor da propriedade Source. |