FontFamily FontFamily FontFamily FontFamily Class

Определение

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

Комментарии

Семейство шрифтов — это набор гарнитур, имеющих одно и то же имя семейства, например 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)uniform resource identifier (URI) значение для разрешения ссылки на шрифт, как показано в следующих Язык XAMLExtensible Application Markup Language (XAML) примерах кода.The friendly name of the font can specify an absolute универсальный идентификатор ресурса (URI)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>

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

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

При указании в качестве атрибута в разметке базовое URIURI значение всегда является подразумеваемым, а URIURI его XAMLXAML значение равно значению страницы. FontFamilyWhen a FontFamily is specified as an attribute in markup, the base URIURI value is always implied - its value is the URIURI of the XAMLXAML page. Подразумеваемое базовое URIURI значение используется с относительным URIURI значением в строке понятного имени для получения расположения шрифта.The implied base URIURI value is used with the relative URIURI value in the friendly name string to obtain the location of the font. В следующем Язык XAMLExtensible Application Markup Language (XAML) примере обратите внимание, что относительное URIURI значение использует нотацию "./", что означает "в текущей папке" базового URIURI значения.In the following Язык XAMLExtensible Application Markup Language (XAML) example, notice that the relative URIURI value uses the "./" notation, which means "in the current folder" of the base URIURI 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.

Механизм резервного Win32Win32 шрифта заменяет предыдущие технологии подстановки шрифтов. WPFWPFThe 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.

Семейство составных шрифтов доступно для приложений с помощью конструкторов Typeface и, как и для FontFamily любого другого семейства шрифтов.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 по умолчанию, как и любой другой установленный шрифт, или можно ссылаться в любом расположении URIURI , включив его при ссылке на семейство по имени.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 URIURI 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.CompositeFontGlobalMonospace.CompositeFont Отрисовывает текст с использованием шрифта с символами пробельных символов, например «Courier New» для латинских знаков.Renders text by using a monospace font, for example, "Courier New" for Latin characters.
GlobalSanSerif.CompositeFontGlobalSanSerif.CompositeFont Отображает текст с использованием шрифта Sans Serif, например Arial для латинских символов.Renders text by using a sans serif font, for example, "Arial" for Latin characters.
GlobalSerif.CompositeFontGlobalSerif.CompositeFont Отображает текст с использованием шрифта serif, например Times New Roman для латинских символов.Renders text by using a serif font, for example, "Times New Roman" for Latin characters.
GlobalUserInterface.CompositeFontGlobalUserInterface.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)uniform resource identifier (URI) для шрифта, а также имя семейства шрифтов.A string specifying a универсальный идентификатор ресурса (URI)uniform resource identifier (URI) for the font, along with a font family name. Имя семейства шрифтов и отделяется символом #. URIURIThe URIURI 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() FontFamily() FontFamily()

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

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

Инициализирует новый экземпляр класса FontFamily по указанному имени семейства шрифтов.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)

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

Свойства

Baseline Baseline Baseline Baseline

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

BaseUri BaseUri BaseUri BaseUri

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

FamilyMaps FamilyMaps FamilyMaps FamilyMaps

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

FamilyNames FamilyNames FamilyNames FamilyNames

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

FamilyTypefaces FamilyTypefaces FamilyTypefaces FamilyTypefaces

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

LineSpacing LineSpacing LineSpacing 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 Source Source Source

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

Методы

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

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

GetHashCode() GetHashCode() GetHashCode() 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() GetType() GetType() GetType()

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

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

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

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

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

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

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

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

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