FontFamily Класс

Определение

Представляет семейство связанных шрифтов.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
Наследование
FontFamily
Атрибуты

Комментарии

Семейство шрифтов — это набор гарнитур, имеющих одно и то же имя семейства, например Times New Roman, но отличающихся функциями.A font family is a set of typefaces that share the same family name, such as "Times New Roman", but that differ in features. Эти различия функций включают Style, такие как курсив, и Weight, например полужирный.These feature differences include Style, such as italic, and Weight, such as bold.

ШрифтыFonts
Примеры гарнитур, являющихся членами семейства шрифтов "Times New Roman"Example of typefaces that are members of the "Times New Roman" font family

Большинство пользовательский интерфейсuser interface (UI) элементов, таких как Button и TextBlock, предоставляют свойство FontFamily, которое можно использовать для указания шрифта текстового содержимого элемента управления.Most пользовательский интерфейс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. Чтобы определить шрифт, задайте для этого свойства значение FontFamily.You define the font by setting that property with a FontFamily value. В следующих примерах показано, как ссылаться на шрифт, в Язык XAMLExtensible Application Markup Language (XAML) и в коде.The following examples show how to reference a font, in Язык XAMLExtensible 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>

В предыдущем примере шрифт, на который ссылается «Comic Sans MS», называется его понятным именем.In the preceding example, the font that is referenced, "Comic Sans MS", is referred to by its friendly name. Кроме того, в этом примере предполагается, что шрифт находится в коллекции системных шрифтов.Also, in this example the font is assumed to be in the system font collection.

Указание шрифтов в альтернативных каталогахSpecifying Fonts in Alternate Directories

Приложение Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) может указать каталог, отличный от каталога, содержащего коллекцию системных шрифтов, для разрешения ссылок на шрифты.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. Понятное имя шрифта может указывать абсолютное значение универсального идентификатора ресурса (URI) для разрешения ссылки на шрифт, как показано в следующих Язык XAMLExtensible Application Markup Language (XAML) и примерах кода.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 Язык XAMLExtensible 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>

Понятное имя шрифта может также указывать относительное значение URI, которое требует наличия базового URI для разрешения ссылки на шрифт.The friendly name of the font can also specify a relative URI value, which requires a base URI to resolve the font reference. Свойство BaseUri объекта FontFamily соответствует базовому значению URI.The BaseUri property of the FontFamily object corresponds to the base URI value. В следующем примере кода показано, как создать ссылку на шрифт, состоящую из базового значения URI и относительного значения URI.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")

Значение базового URI можно использовать при ссылке на шрифт, упакованный как часть приложения.You can use a base URI value when you reference a font that is packaged as part of the application. Например, базовым значением URI может быть URI "pack://application", который позволяет ссылаться на шрифты, Упакованные в ресурсы приложения.For example, the base URI value can be a "pack://application" URI, which lets you reference fonts that are packaged as application resources. В следующем примере кода показана ссылка на шрифт, состоящая из базового значения URI и относительного значения URI.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")

При указании FontFamily в качестве атрибута в разметке значение базового URI всегда является подразумеваемым — его значением является URI страницы XAMLXAML.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. Неявное значение базового URI используется с относительным значением URI в строке понятного имени для получения расположения шрифта.The implied base URI value is used with the relative URI value in the friendly name string to obtain the location of the font. В следующем Язык XAMLExtensible Application Markup Language (XAML) примере обратите внимание, что относительное значение URI использует нотацию "./", что означает "в текущей папке" базового значения URI.In the following Язык XAMLExtensible 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>

WPFWPF приложение может упаковывать шрифты в виде элемента содержимого, элемента ресурса или элемента ресурса библиотеки.A WPFWPF application can package fonts as either a content item, a resource item, or a library resource item. Дополнительные сведения см. в разделе Упаковка шрифтов с приложениями.For more information, see Packaging Fonts with Applications.

Откат шрифтаFont Fallback

Откат шрифта относится к автоматической подстановке шрифта, отличного от шрифта, выбранного клиентским приложением.Font fallback refers to the automatic substitution of a font other than the font that is selected by the client application. Существует две основные причины вызова отката шрифта.There are two primary reasons why font fallback is invoked:

  • Шрифт, заданный клиентским приложением, не существует в системе.The font that is specified by the client application does not exist on the system.

  • Шрифт, заданный клиентским приложением, не содержит глифы, необходимые для отрисовки текста.The font that is specified by the client application does not contain the glyphs that are required to render text.

ВWPFWPFмеханизм резервного шрифта использует в качестве замещающего шрифта семейство шрифтов по умолчанию "глобальный пользовательский интерфейс".InWPFWPF, the font fallback mechanism uses the default fallback font family, "Global User Interface", as the substitute font. Этот шрифт определен как составной шрифт, имя файла которого — "Глобалусеринтерфаце. Компоситефонт".This font is defined as a composite font, whose file name is "GlobalUserInterface.CompositeFont". Дополнительные сведения о составных шрифтах см. в разделе Составные шрифты этой статьи.For more information about composite fonts, see the Composite Fonts section in this topic.

Механизм резервного шрифта WPFWPF заменяет предыдущие Win32Win32 технологии подстановки шрифтов.The WPFWPF font fallback mechanism replaces previous Win32Win32 font substitution technologies.

Определение последовательности резервных шрифтов в кодеDefining a Font Fallback Sequence in Code

В коде можно определить последовательность резервного шрифта, которая позволяет определить альтернативный шрифт.You can define a font fallback sequence in your code, which lets you define an alternate font. При создании объекта FontFamily укажите несколько имен семейств шрифтов, разделенных запятыми, для параметра String, например "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". В этом случае, если глифы гарнитуры «Comic Sans MS» недоступны, используются глифы гарнитуры Verdana.In this case, if the glyphs from the "Comic Sans MS" typeface are not available, glyphs from the "Verdana" typeface are used. Если ни в одной из "Comic Sans MS" и "Verdana" не установлены необходимые глифы, используется резервное семейство шрифтов гарнитуры, которое по умолчанию является глобальным пользовательским интерфейсом.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.

В следующих примерах показано, как определить последовательность резервного шрифта в Язык XAMLExtensible Application Markup Language (XAML) и в коде.The following examples show how to define a font fallback sequence, in Язык XAMLExtensible 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>

Любой из шрифтов в последовательности резервных копий может указывать расположение шрифтов.Any one of the fonts in the fallback sequence can specify font locations. В следующих примерах на "Pericles Light" упоминается как ресурс приложения, а "Verdana" упоминается как элемент коллекции системных шрифтов.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>

Составные шрифтыComposite Fonts

Платформа WPFWPF предоставляет функцию составного шрифта, которая позволяет создавать многоязычные шрифты с полным диапазоном и не отображать недостающие глифы.The WPFWPF platform provides a composite font feature to allow the construction of full range multilingual fonts, and to avoid displaying missing glyphs. Составные шрифты заменяют Win32Win32 связывания шрифтов, отката шрифта, привязки шрифта, связи шрифтов и механизмов, определяемых конечным пользователем (EUDC).Composite fonts replace the Win32Win32 font linking, font fallback, font binding, font association, and end-user-defined characters (EUDC) mechanisms.

Семейство составных шрифтов доступно для приложений с помощью FontFamily и Typeface конструкторов так же, как любое другое семейство шрифтов.A composite font family is available to applications through the FontFamily and Typeface constructors just like any other font family. Каждое семейство составных шрифтов имеет имя, а, как и другие шрифты, может предоставлять локализованные варианты имени на нескольких языках.Each composite font family is named, and, as with other fonts, can provide localized variants of its name in multiple languages.

В следующем примере разметки показано, как семейство составных шрифтов может быть определено как файл на диске.The following markup example shows how a composite font family can be defined as a disk file. Этот файл может храниться в каталоге шрифтов WindowsWindows по умолчанию, как и любой другой установленный шрифт, или на него можно ссылаться в любом расположении, включая его URI при ссылке на семейство по имени.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.

В следующем примере показана разметка семейства шрифтов в. Компоситефонт "файл.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>

Следующие четыре составных шрифта появятся в каталоге шрифтов Windows по умолчанию в процессе установки WPF.The following four composite fonts appear in the default Windows font directory as part of the WPF installation.

ШрифтFont ПримечанияNotes
Глобалмоноспаце. КомпоситефонтGlobalMonospace.CompositeFont Отрисовывает текст с использованием шрифта с символами пробельных символов, например «Courier New» для латинских знаков.Renders text by using a monospace font, for example, "Courier New" for Latin characters.
Глобалсансериф. КомпоситефонтGlobalSanSerif.CompositeFont Отображает текст с использованием шрифта Sans Serif, например Arial для латинских символов.Renders text by using a sans serif font, for example, "Arial" for Latin characters.
Глобалсериф. КомпоситефонтGlobalSerif.CompositeFont Отображает текст с использованием шрифта serif, например Times New Roman для латинских символов.Renders text by using a serif font, for example, "Times New Roman" for Latin characters.
Глобалусеринтерфаце. КомпоситефонтGlobalUserInterface.CompositeFont Отображает текст с использованием шрифта по умолчанию, например Times New Roman для латинских символов.Renders text by using a default font, for example, "Times New Roman" for Latin characters.

Использование атрибута XAMLXAML Attribute Usage

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

Значения XAMLXAML Values

фонтфамилинамеfontFamilyName
Строка, указывающая имя семейства шрифтов.A string specifying a font family name. Например, "Arial" или "Century Gothic".For example, "Arial" or "Century Gothic".

фонтфамилинамеслистfontFamilyNamesList
Строка, указывающая несколько имен семейств шрифтов, разделенных запятыми (любые пробелы после запятой игнорируются).A string specifying multiple font family names, each separated by a comma (any white space following a comma is ignored). Первое указанное семейство шрифтов выступает в качестве основного семейства шрифтов; последующие семейства шрифтов служат в качестве резервных семейств для использования в тех случаях, когда первичное семейство шрифтов недоступно или неприменимо.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. Например, "Arial, Century Gothic" указывает шрифт Arial в качестве основного семейства шрифтов, а в качестве семейства резервных шрифтов — "век".For example, "Arial, Century Gothic" specifies Arial as the primary font family, with Century Gothic as the fallback font family.

фонтфамилифолдерреференцеfontFamilyFolderReference
Строка, указывающая папку, содержащую шрифт, а также имя семейства шрифтов.A string specifying a folder containing the font, along with a font family name. Имя папки и семейства шрифтов отделяется символом #.The folder and font family name are delimited by a # character. Ссылка на папку может быть абсолютной или относительной.The folder reference may be absolute, or relative. Например, "Custom Fonts\#My Custom Font".For example, "Custom Fonts\#My Custom Font".

фонтфамилюриреференцеfontFamilyUriReference
Строка, указывающая универсальный код ресурса (URI) для шрифта, а также имя семейства шрифтов.A string specifying a uniform resource identifier (URI) for the font, along with a font family name. URI и имя семейства шрифтов разделяются символом #.The URI and font family name are delimited by a # character. Например, "http://MyFontServer/Fonts/#My Custom Font".For example, "http://MyFontServer/Fonts/#My Custom Font".

Конструкторы

FontFamily()

Инициализирует новый экземпляр анонимного класса FontFamily.Initializes a new instance of an anonymous FontFamily class.

FontFamily(String)

Инициализирует новый экземпляр класса FontFamily по указанному имени семейства шрифтов.Initializes a new instance of the FontFamily class from the specified font family name.

FontFamily(Uri, String)

Инициализирует новый экземпляр класса FontFamily на основе заданного имени семейства шрифтов и необязательного значения базового универсального кода ресурса (URI).Initializes a new instance of the FontFamily class from the specified font family name and an optional base uniform resource identifier (URI) value.

Свойства

Baseline

Получает или задает расстояние между базовым планом и верхним краем знакоместа.Gets or sets the distance between the baseline and the character cell top.

BaseUri

Возвращает базовый универсальный код ресурса (URI), используемый для разрешения имени семейства шрифтов.Gets the base uniform resource identifier (URI) that is used to resolve a font family name.

FamilyMaps

Возвращает коллекцию объектов FontFamilyMap.Gets the collection of FontFamilyMap objects.

FamilyNames

Получает коллекцию строк и значений CultureInfo, которые представляют имена семейств шрифтов объекта FontFamily.Gets a collection of strings and CultureInfo values that represent the font family names of the FontFamily object.

FamilyTypefaces

Получает коллекцию гарнитур для объекта FontFamily.Gets a collection of typefaces for the FontFamily object.

LineSpacing

Получает или задает значение междустрочного интервала для объекта FontFamily.Gets or sets the line spacing value for the FontFamily object. Междустрочный интервал — это рекомендуемое расстояние между базовыми планами для написанного данным шрифтом текста относительно максимального размера.The line spacing is the recommended baseline-to-baseline distance for the text in this font relative to the em size.

Source

Получает имя семейства шрифтов, используемого для построения объекта FontFamily.Gets the font family name that is used to construct the FontFamily object.

Методы

Equals(Object)

Получает значение, позволяющее определить, совпадают ли текущий и заданный объекты семейства шрифтов.Gets a value that indicates whether the current font family object and the specified font family object are the same.

GetHashCode()

Служит хэш-функцией для FontFamily.Serves as a hash function for FontFamily. Она может применяться в алгоритмах и структурах данных хэширования, например в хэш-таблицах.It is suitable for use in hashing algorithms and data structures such as a hash table.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
GetTypefaces()

Возвращает коллекцию объектов Typeface, представляющих гарнитуры в расположении системных шрифтов по умолчанию.Returns a collection of Typeface objects that represent the type faces in the default system font location.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает значение свойства Source.Returns the value of the Source property.

Применяется к

Дополнительно