FontFamily Klasa

Definicja

Reprezentuje rodzinę powiązanych czcionek.

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
Dziedziczenie
FontFamily
Atrybuty

Uwagi

Rodzina czcionek to zestaw czcionek, które mają taką samą nazwę rodziny, jak "Times New Roman", ale różnią się cechami. Te różnice funkcji obejmują Style, takie jak kursywa i Weight, takie jak pogrubienie.

Czcionki czcionek
Przykładowe czcionki, które są członkami rodziny czcionek "Times New Roman"

Większość elementów interfejsu użytkownika, takich jak Button i TextBlock, udostępnia FontFamily właściwość, która może służyć do określania czcionki dla zawartości tekstowej kontrolki. Czcionkę należy zdefiniować, ustawiając dla tej właściwości FontFamily wartość. W poniższych przykładach pokazano, jak odwoływać się do czcionki w języku XAML (Extensible Application Markup Language) i w kodzie.

myTextBlock.FontFamily = new FontFamily("Comic Sans MS");
myTextBlock.FontFamily = New FontFamily("Comic Sans MS")
<TextBlock FontFamily="Comic Sans MS">Hello, world</TextBlock>

W poprzednim przykładzie czcionka, o której mowa, "Comic Sans MS", jest określana przez przyjazną nazwę. Ponadto w tym przykładzie zakłada się, że czcionka znajduje się w kolekcji czcionek systemowych.

Określanie czcionek w katalogach alternatywnych

Aplikacja Windows Presentation Foundation (WPF) może określić katalog inny niż katalog zawierający kolekcję czcionek systemów do rozpoznawania odwołań do czcionek. Przyjazna nazwa czcionki może określać bezwzględną wartość identyfikatora URI ,aby rozpoznać odwołanie do czcionki, jak pokazano w poniższych przykładach języka XAML (Extensible Application Markup Language) i kodu.

// 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>

Przyjazna nazwa czcionki może również określać względną wartość identyfikatora URI, która wymaga podstawowego identyfikatora URI w celu rozpoznania odwołania do czcionki. Właściwość BaseUriFontFamily obiektu odpowiada wartości podstawowego identyfikatora URI. W poniższym przykładzie kodu pokazano, jak utworzyć odwołanie do czcionki składające się z wartości podstawowego identyfikatora URI i względnej wartości identyfikatora 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")

Wartość podstawowego identyfikatora URI można użyć podczas odwołowania się do czcionki spakowanej w ramach aplikacji. Na przykład podstawowa wartość identyfikatora URI może być identyfikatorem URI "pack://application", który umożliwia odwołowanie się do czcionek spakowanych jako zasoby aplikacji. Poniższy przykład kodu przedstawia odwołanie do czcionki składające się z wartości podstawowego identyfikatora URI i względnej wartości identyfikatora 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")

FontFamily Gdy element jest określony jako atrybut w adiustacji, podstawowa wartość identyfikatora URI jest zawsze dorozumiana — jego wartość jest identyfikatorem URI strony XAML. Sugerowana wartość podstawowego identyfikatora URI jest używana z względną wartością identyfikatora URI w przyjaznym ciągu nazwy w celu uzyskania lokalizacji czcionki. W poniższym przykładzie extensible Application Markup Language (XAML) zwróć uwagę, że względna wartość identyfikatora URI używa notacji "./", co oznacza "w bieżącym folderze" wartości podstawowego identyfikatora URI.

<TextBlock FontFamily="./resources/#Pericles Light">
  Aegean Sea
</TextBlock>

Aplikacja WPF może spakować czcionki jako element zawartości, element zasobu lub element zasobu biblioteki. Aby uzyskać więcej informacji, zobacz Pakowanie czcionek za pomocą aplikacji.

Powrót czcionki

Rezerwa czcionki odnosi się do automatycznego zastępowania czcionki innej niż czcionka wybrana przez aplikację kliencką. Istnieją dwa główne powody, dla których wywoływana jest rezerwa czcionki:

  • Czcionka określona przez aplikację kliencka nie istnieje w systemie.

  • Czcionka określona przez aplikację kliencka nie zawiera glifów wymaganych do renderowania tekstu.

W WPF mechanizm rezerwowy czcionki używa domyślnej rodziny czcionek rezerwowych, "Globalny interfejs użytkownika", jako czcionki zastępczej. Ta czcionka jest definiowana jako czcionka złożona, której nazwa pliku to "GlobalUserInterface.CompositeFont". Aby uzyskać więcej informacji na temat czcionek złożonych, zobacz sekcję Czcionki złożone w tym temacie.

Mechanizm rezerwowy czcionki WPF zastępuje poprzednie technologie zastępowania czcionek Win32.

Definiowanie sekwencji rezerwowej czcionki w kodzie

W kodzie można zdefiniować sekwencję rezerwową czcionki, która umożliwia zdefiniowanie alternatywnej czcionki. Podczas tworzenia FontFamily obiektu podaj wiele nazw rodzin czcionek rozdzielonych przecinkami dla parametru String , takiego jak "Comic Sans MS, Verdana". W takim przypadku, jeśli glify z kroju typowego "Comic Sans MS" nie są dostępne, glify z czcionki "Verdana" są używane. Jeśli ani "Comic Sans MS" ani "Verdana" nie mają wymaganych glifów, domyślnie jest używana rodzina czcionek rezerwowych tego typu, która jest domyślnie "globalny interfejs użytkownika".

W poniższych przykładach pokazano, jak zdefiniować sekwencję rezerwową czcionki w języku Extensible Application Markup Language (XAML) i w kodzie.

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>

Dowolna czcionka w sekwencji rezerwowej może określać lokalizacje czcionek. W poniższych przykładach "Pericles Light" jest przywołyny jako zasób aplikacji, a "Verdana" jest przywołyny jako element członkowski kolekcji czcionek systemowych.

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>

Czcionki złożone

Platforma WPF udostępnia funkcję czcionki złożonej, która umożliwia tworzenie pełnych wielojęzycznych czcionek oraz unikanie wyświetlania brakujących glyphs. Czcionki złożone zastępują mechanizmy łączenia czcionek Win32, rezerwowego czcionki, powiązania czcionek, skojarzenia czcionek i znaków zdefiniowanych przez użytkownika końcowego (EUDC).

Rodzina czcionek złożonych jest dostępna dla aplikacji za pośrednictwem FontFamily konstruktorów i Typeface tak samo jak w przypadku każdej innej rodziny czcionek. Każda rodzina czcionek złożonych ma nazwę, a podobnie jak w przypadku innych czcionek, może udostępniać zlokalizowane warianty swojej nazwy w wielu językach.

Poniższy przykład znaczników pokazuje, jak można zdefiniować rodzinę czcionek złożonych jako plik dysku. Ten plik może być przechowywany w domyślnym katalogu czcionek systemu Windows, tak jak w przypadku dowolnej innej zainstalowanej czcionki, lub może być przywoływane w dowolnej lokalizacji, uwzględniając jego identyfikator URI podczas odwoływania się do rodziny według nazwy.

W poniższym przykładzie przedstawiono znaczniki rodziny czcionek w elemecie ". Plik 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>

Następujące cztery czcionki złożone są wyświetlane w domyślnym katalogu czcionek systemu Windows w ramach instalacji WPF.

Czcionka Uwagi
GlobalMonospace.CompositeFont Renderuje tekst przy użyciu czcionki monospace, na przykład "Courier New" dla znaków łacińskich.
GlobalSanSerif.CompositeFont Renderuje tekst przy użyciu czcionki serif sans, na przykład "Arial" dla znaków łacińskich.
GlobalSerif.CompositeFont Renderuje tekst przy użyciu czcionki serif, na przykład "Times New Roman" dla znaków łacińskich.
GlobalUserInterface.CompositeFont Renderuje tekst przy użyciu czcionki domyślnej, na przykład "Times New Roman" dla znaków łacińskich.

Użycie atrybutu języka XAML

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

Wartości XAML

fontFamilyName
Ciąg określający nazwę rodziny czcionek. Na przykład: "Arial" lub "Century Gothic".

fontFamilyNamesList
Ciąg określający wiele nazw rodzin czcionek, każdy oddzielony przecinkiem (wszelkie białe znaki po przecinku są ignorowane). Określona pierwsza rodzina czcionek służy jako podstawowa rodzina czcionek; kolejne rodziny czcionek służą jako rodziny rezerwowe do użycia w przypadkach, gdy podstawowa rodzina czcionek jest niedostępna lub nie dotyczy. Na przykład "Arial, Century Gothic" określa Arial jako podstawową rodzinę czcionek, z Century Gothic jako rodziną czcionek rezerwowych.

fontFamilyFolderReference
Ciąg określający folder zawierający czcionkę wraz z nazwą rodziny czcionek. Nazwa folderu i rodziny czcionek są rozdzielane znakiem #. Odwołanie do folderu może być bezwzględne lub względne. Na przykład "Custom Fonts\#My Custom Font".

fontFamilyUriReference
Ciąg określający jednolity identyfikator zasobu (URI) dla czcionki wraz z nazwą rodziny czcionek. Identyfikator URI i nazwa rodziny czcionek są rozdzielane znakiem #. Na przykład "http://MyFontServer/Fonts/#My Custom Font".

Konstruktory

FontFamily()

Inicjuje nowe wystąpienie klasy anonimowej FontFamily .

FontFamily(String)

Inicjuje FontFamily nowe wystąpienie klasy z określonej nazwy rodziny czcionek.

FontFamily(Uri, String)

Inicjuje nowe wystąpienie FontFamily klasy z określonej nazwy rodziny czcionek i opcjonalną wartość identyfikatora URI (Base Uniform Resource Identifier).

Właściwości

Baseline

Pobiera lub ustawia odległość między punktem odniesienia a górną komórką znaku.

BaseUri

Pobiera podstawowy identyfikator URI ,który jest używany do rozpoznawania nazwy rodziny czcionek.

FamilyMaps

Pobiera kolekcję FontFamilyMap obiektów.

FamilyNames

Pobiera kolekcję ciągów i CultureInfo wartości reprezentujących nazwy FontFamily rodzin czcionek obiektu.

FamilyTypefaces

Pobiera kolekcję czcionek dla FontFamily obiektu.

LineSpacing

Pobiera lub ustawia wartość odstępów między wierszami FontFamily dla obiektu. Odstęp między wierszami jest zalecaną odległością od linii bazowej do linii bazowej dla tekstu w tej czcionki względem rozmiaru em.

Source

Pobiera nazwę rodziny czcionek używaną do konstruowania FontFamily obiektu.

Metody

Equals(Object)

Pobiera wartość wskazującą, czy bieżący obiekt rodziny czcionek i określony obiekt rodziny czcionek są takie same.

GetHashCode()

Służy jako funkcja skrótu dla FontFamilyelementu . Nadaje się do użycia w algorytmach tworzenia skrótów i strukturach danych, takich jak tabela skrótów.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
GetTypefaces()

Zwraca kolekcję obiektów reprezentujących Typeface typy twarzy w domyślnej lokalizacji czcionki systemu.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca wartość Source właściwości.

Dotyczy

Zobacz też