FontFamily Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
Observações
Uma família de fontes é um conjunto de tipos tipográficos que partilham o mesmo apelido, como "Times New Roman", mas que diferem nas características. Estas diferenças de características incluem Style, como itálico, e Weight, como negrito.
Exemplo de tipos de letra que pertencem à família de fontes "Times New Roman"
A maioria dos elementos da interface de utilizador (UI), como Button e TextBlock, fornece uma FontFamily propriedade que pode ser usada para especificar uma fonte para o conteúdo textual de um controlo. Defines a fonte atribuindo essa propriedade a um FontFamily valor. Os exemplos seguintes mostram como referenciar uma fonte, em Extensible Application Markup Language (XAML) e em 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", é referida pelo seu nome amigável. Além disso, neste exemplo, assume-se que a fonte pertence à coleção de fontes do sistema.
Especificação de fontes em diretórios alternativos
Uma aplicação Windows Presentation Foundation (WPF) pode especificar um diretório, diferente do diretório que contém a coleção de fontes do sistema, para resolver referências de fontes. O nome amigável da fonte pode especificar um valor absoluto de identificador uniforme de recurso (URI) para resolver a referência da fonte, como mostrado nos seguintes exemplos de Extensible Application Markup Language (XAML) e código.
// 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 pode também especificar um valor relativo de URI, que requer um URI base para resolver a referência da fonte. A BaseUri propriedade do FontFamily objeto corresponde ao valor base do URI. O exemplo de código seguinte mostra como criar uma referência de fonte composta por um valor base de URI e um valor relativo de URI.
// 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")
Podes usar um valor base de URI quando referencias uma fonte que é incluída na aplicação. Por exemplo, o valor base do URI pode ser um URI "pack://application", que permite referenciar fontes que são empacotadas como recursos de aplicação. O exemplo de código seguinte mostra uma referência de fonte composta por um valor base de URI e um valor relativo de URI.
// 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 a FontFamily é especificado como um atributo na marcação, o valor base do URI está sempre implícito – o seu valor é o URI da página XAML. O valor base de URI implícito é usado com o valor relativo de URI na cadeia de nomes amigável para obter a localização da fonte. No exemplo seguinte da Extensible Application Markup Language (XAML), repare que o valor relativo do URI utiliza a notação "./", que significa "na pasta atual" do valor base do URI.
<TextBlock FontFamily="./resources/#Pericles Light">
Aegean Sea
</TextBlock>
Uma aplicação WPF pode empacotar fontes como item de conteúdo, item de recurso ou item de biblioteca de biblioteca. Para mais informações, consulte Tipos de Letra de Embalagem com Aplicações.
Reserva de fontes
O fallback da fonte refere-se à substituição automática de uma fonte diferente da que é selecionada pela aplicação cliente. Existem duas razões principais pelas quais o recurso de reserva de fontes é invocado:
A fonte especificada pela aplicação cliente não existe no sistema.
A fonte especificada pela aplicação cliente não contém os glifos necessários para renderizar texto.
No WPF, o mecanismo de recurso de fontes utiliza a família de fontes de recurso padrão, "Global User Interface", como fonte substituta. Esta fonte é definida como uma fonte composta, cujo nome de ficheiro é "GlobalUserInterface.CompositeFont". Para mais informações sobre fontes compostas, consulte a secção Fontes Compostas neste tópico.
O mecanismo de reserva de fontes WPF substitui as tecnologias anteriores de substituição de fontes Win32.
Definição de uma sequência de recurso de fonte em código
Podes definir uma sequência de reserva de fontes no teu código, o que te permite definir uma fonte alternativa. Ao criar um FontFamily objeto, forneça vários nomes de famílias de fontes, separados por vírgulas, para o String parâmetro, como "Comic Sans MS, Verdana". Neste caso, se os glifos da tipografia "Comic Sans MS" não estiverem disponíveis, são usados glifos da tipografia "Verdana". Se nem "Comic Sans MS" nem "Verdana" tiverem os glifos necessários, é usada a família de fontes de recurso da fonte, que é "Global User Interface" por defeito.
Os exemplos seguintes mostram como definir uma sequência de reserva de fontes, em Extensible Application Markup Language (XAML) 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 reserva pode especificar a localização das fontes. Nos exemplos seguintes, "Pericles Light" é referenciado como recurso de aplicação, e "Verdana" é referenciado como 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 oferece uma funcionalidade de fonte composta para permitir a construção de fontes multilíngues de gama completa e evitar a ausência de glifos. As fontes compostas substituem os mecanismos de ligação de fontes Win32, recurso de reserva, ligação de fontes, associação de fontes e caracteres definidos pelo utilizador final (EUDC).
Uma família de fontes compostas está disponível para aplicações através dos FontFamily construtores and Typeface tal como qualquer outra família de fontes. Cada família de fontes compostas tem um nome e, tal como outras fontes, pode fornecer variantes localizadas do seu nome em várias línguas.
O exemplo seguinte de marcação mostra como uma família de fontes compostas pode ser definida como um ficheiro de disco. Este ficheiro pode ser armazenado na pasta de fontes padrão do Windows como qualquer outra fonte instalada, ou pode ser referenciado em qualquer local incluindo o seu URI ao referenciar a família pelo nome.
O exemplo seguinte mostra a marcação da família de fontes num ". 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 seguintes quatro fontes compostas aparecem no diretório predefinido de fontes do Windows como parte da instalação do WPF.
| Tipo de letra | Notes |
|---|---|
| GlobalMonospace.CompositeFont | Renderiza texto usando uma fonte monoespaço, por exemplo, "Courier New" para caracteres latinos. |
| GlobalSanSerif.CompositeFont | Renderiza texto usando uma fonte sans serif, por exemplo, "Arial" para caracteres latinos. |
| GlobalSerif.CompositeFont | Renderiza texto usando uma fonte serifa, por exemplo, "Times New Roman" para caracteres latinos. |
| GlobalUserInterface.CompositeFont | Renderiza texto usando uma fonte padrão, por exemplo, "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 Uma cadeia que especifica um nome de família tipográfico. Por exemplo, "Arial" ou "Century Gothic".
fonteFamíliaNomesLista Uma cadeia que especifica vários nomes de famílias 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 principal de fontes; As famílias de fontes subsequentes servem como famílias de reserva a serem usadas nos casos em que a família principal de fontes não está disponível ou não é aplicável. Por exemplo, "Arial, Century Gothic" especifica Arial como a família principal de fontes, com Century Gothic como família de fontes de recurso.
fontFamilyFolderReference Uma cadeia que especifica uma pasta contendo a fonte, juntamente com o nome da família da fonte. A pasta e o nome da família da fonte são delimitados por um carácter #. A referência à pasta pode ser absoluta ou relativa. Por exemplo, "Custom Fonts\#My Custom Font".
fontFamilyUriReference Uma cadeia que especifica um identificador uniforme de recurso (URI) para a fonte, juntamente com um nome de família de fontes. O URI e o nome da família da fonte são delimitados por um carácter #. Por exemplo, "http://MyFontServer/Fonts/#My Custom Font".
Construtores
| Name | Descrição |
|---|---|
| FontFamily() |
Inicializa uma nova instância de uma classe anónima FontFamily . |
| FontFamily(String) |
Inicializa uma nova instância da FontFamily classe a partir do nome da família de fontes especificado. |
| FontFamily(Uri, String) |
Inicializa uma nova instância da FontFamily classe a partir do nome da família de fonte especificado e de um valor opcional de identificador uniforme de recurso (URI). |
Propriedades
| Name | Descrição |
|---|---|
| Baseline |
Obtém ou define a distância entre a linha base e o topo da célula do carácter. |
| BaseUri |
Obtém o identificador uniforme base de recurso (URI) que é usado para resolver o nome de uma família de fontes. |
| FamilyMaps |
Fica com a coleção de FontFamilyMap objetos. |
| FamilyNames |
Obtém uma coleção de cadeias e CultureInfo valores que representam os nomes das famílias de fontes do FontFamily objeto. |
| FamilyTypefaces |
Obtém uma coleção de tipos de letra para o FontFamily objeto. |
| LineSpacing |
Obtém ou define o valor de espaçamento entre linhas para o FontFamily objeto. O espaçamento entre linhas é a distância recomendada entre a linha base para o texto nesta fonte em relação ao tamanho EM. |
| Source |
Obtém o nome da família da fonte que é usado para construir o FontFamily objeto. |
Métodos
| Name | Descrição |
|---|---|
| Equals(Object) |
Obtém um valor que indica se o objeto da família de fontes atual e o objeto da família de fontes especificado são o mesmo. |
| GetHashCode() |
Serve como função de hash para FontFamily. É 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() |
Devolve uma coleção de Typeface objetos que representam as fontes tipográficas na localização padrão da fonte do sistema. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve o valor da Source propriedade. |