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

Buttonユーザー インターフェイス (UI)user interface (UI) FontFamilyなどのほとんどの要素は、コントロールのテキストコンテンツのフォントを指定するために使用できるプロパティを提供します。 TextBlockMost ユーザー インターフェイス (UI)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. 次の例は、とのExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)コードで、フォントを参照する方法を示しています。The following examples show how to reference a font, in Extensible Application Markup Language (XAML)Extensible 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>

前の例では、参照される "漫画 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)では、フォント参照を解決するために、systems フォントコレクションが格納されているディレクトリ以外のディレクトリを指定できます。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. フォントの表示名には、次Uniform Resource Identifier (URI)uniform resource identifier (URI) Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)のコード例に示すように、フォント参照を解決するための絶対値を指定できます。The friendly name of the font can specify an absolute Uniform Resource Identifier (URI)uniform resource identifier (URI) value to resolve the font reference, as shown in the following Extensible Application Markup Language (XAML)Extensible 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. オブジェクトのプロパティはBaseUri 、基本URIURI値に対応しています。 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. Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)の例では、相対URIURI値で "./" 表記が使用されていることに注意してください。これはURIURI 、基本値の "現在のフォルダー" を意味します。In the following Extensible Application Markup Language (XAML)Extensible 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. フォントフォールバックが呼び出される主な理由は2つあります。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は、フォントフォールバックメカニズムによって、既定のフォールバックフォントファミリである "Global User Interface" が代替フォントとして使用されます。InWPFWPF, the font fallback mechanism uses the default fallback font family, "Global User Interface", as the substitute font. このフォントは、ファイル名が "GlobalUserInterface. CompositeFont" である複合フォントとして定義されます。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パラメーターに複数のフォントファミリ名をコンマで区切って指定します ("漫画 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". この場合、"漫画 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. "漫画 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.

次の例は、とのExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)コードで、フォントフォールバックシーケンスを定義する方法を示しています。The following examples show how to define a font fallback sequence, in Extensible Application Markup Language (XAML)Extensible 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いる他のフォントと同様に既定のフォントディレクトリに格納できます。また、ファミリ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.

次の例は、"のフォントファミリマークアップを示しています。CompositeFont "file.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>

次の4つの複合フォントは、WPF インストールの一部として、既定の Windows フォントディレクトリに表示されます。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 ラテン文字の "Arial" など、sans serif フォントを使用してテキストを表示します。Renders text by using a sans serif font, for example, "Arial" for Latin characters.
GlobalSerif.CompositeFontGlobalSerif.CompositeFont ラテン文字の "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.

XAML 属性の使用方法XAML Attribute Usage

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

XAML 値XAML Values

fontFamilyNamefontFamilyName
フォントファミリ名を指定する文字列。A string specifying a font family name. たとえば、"Arial" または "Century Gothic" のようにします。For example, "Arial" or "Century Gothic".

fontFamilyNamesListfontFamilyNamesList
コンマで区切られた複数のフォントファミリ名を指定する文字列 (コンマの後の空白は無視されます)。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 が使用され、代替フォントファミリとして century ゴシックが指定されています。For example, "Arial, Century Gothic" specifies Arial as the primary font family, with Century Gothic as the fallback font family.

fontFamilyFolderReferencefontFamilyFolderReference
フォントファミリ名と共に、フォントを含むフォルダーを指定する文字列。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".

fontFamilyUriReferencefontFamilyUriReference
フォントのをUniform Resource Identifier (URI)uniform resource identifier (URI) 、フォントファミリ名と共に指定する文字列。A string specifying a Uniform Resource Identifier (URI)uniform resource identifier (URI) for the font, along with a font family name. URIURIとフォントファミリ名は、# 文字で区切られます。The 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)

指定したフォント ファミリ名およびオプションの基本 Uniform Resource Identifier (URI)uniform resource identifier (URI) の値から FontFamily クラスの新しいインスタンスを初期化します。Initializes a new instance of the FontFamily class from the specified font family name and an optional base Uniform Resource Identifier (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

フォント ファミリ名を解決するために使用される基本 Uniform Resource Identifier (URI)uniform resource identifier (URI) を取得します。Gets the base Uniform Resource Identifier (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.

適用対象

こちらもご覧ください