FontFamily Klasse

Definition

Stellt eine Familie verwandter Schriftarten dar.

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
Vererbung
FontFamily
Attribute

Hinweise

Eine Schriftartenfamilie ist eine Reihe von Schriftarten, die denselben Familiennamen wie "Times New Roman" haben, die sich jedoch in den Funktionen unterscheiden. Zu diesen Featureunterschieden gehören Style, z. B. Kursiv und Weight, z. B. fett.

Schriftarten Schriftarten
Beispiel für Schriftarten, die Mitglieder der Schriftartenfamilie "Times New Roman" sind

Die meisten Elemente der Benutzeroberfläche (UI), z Button . B. und TextBlock, stellen eine FontFamily Eigenschaft bereit, mit der eine Schriftart für den Textinhalt eines Steuerelements angegeben werden kann. Sie definieren die Schriftart, indem Sie diese Eigenschaft mit einem FontFamily -Wert festlegen. Die folgenden Beispiele zeigen, wie sie in XAML (Extensible Application Markup Language) und im Code auf eine Schriftart verweisen.

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

Im vorherigen Beispiel wird auf die Schriftart , auf die verwiesen wird, "Comic Sans MS" durch ihren Anzeigenamen verwiesen. Außerdem wird in diesem Beispiel davon ausgegangen, dass sich die Schriftart in der Systemschriftartauflistung befindet.

Angeben von Schriftarten in alternativen Verzeichnissen

Eine WPF-Anwendung (Windows Presentation Foundation) kann ein anderes Verzeichnis als das Verzeichnis angeben, das die Systemschriftartenauflistung enthält, um Schriftartverweise aufzulösen. Der Anzeigename der Schriftart kann einen absoluten URI-Wert (Uniform Resource Identifier) angeben, um den Schriftartverweis aufzulösen, wie in den folgenden XAML-Codebeispielen (Extensible Application Markup Language) und Codebeispielen gezeigt.

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

Der Anzeigename der Schriftart kann auch einen relativen URI-Wert angeben, der einen Basis-URI erfordert, um den Schriftartverweis aufzulösen. Die BaseUri -Eigenschaft des FontFamily -Objekts entspricht dem Basis-URI-Wert. Das folgende Codebeispiel zeigt, wie Sie einen Schriftartverweis erstellen, der aus einem Basis-URI-Wert und einem relativen URI-Wert besteht.

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

Sie können einen Basis-URI-Wert verwenden, wenn Sie auf eine Schriftart verweisen, die als Teil der Anwendung gepackt ist. Der Basis-URI-Wert kann z. B. ein "pack://application"-URI sein, mit dem Sie auf Schriftarten verweisen können, die als Anwendungsressourcen gepackt sind. Das folgende Codebeispiel zeigt einen Schriftartverweis, der aus einem Basis-URI-Wert und einem relativen URI-Wert besteht.

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

Wenn ein FontFamily als Attribut im Markup angegeben wird, wird der Basis-URI-Wert immer impliziert. Sein Wert ist der URI der XAML-Seite. Der implizite Basis-URI-Wert wird mit dem relativen URI-Wert in der Anzeigenamenzeichenfolge verwendet, um den Speicherort der Schriftart abzurufen. Beachten Sie im folgenden XAML-Beispiel (Extensible Application Markup Language), dass der relative URI-Wert die Notation "./" verwendet, was "im aktuellen Ordner" des Basis-URI-Werts bedeutet.

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

Eine WPF-Anwendung kann Schriftarten entweder als Inhaltselement, als Ressourcenelement oder als Bibliotheksressourcenelement verpacken. Weitere Informationen finden Sie unter Schriftarten mit Anwendungen verpacken.

Schriftartenfallback

Ein Schriftartfallback bezieht sich auf das automatische Ersetzen einer anderen Schriftart als der Schriftart, die von der Clientanwendung ausgewählt wird. Es gibt zwei Hauptgründe, warum ein Fallback für Schriftarten aufgerufen wird:

  • Die von der Clientanwendung angegebene Schriftart ist im System nicht vorhanden.

  • Die von der Clientanwendung angegebene Schriftart enthält nicht die Glyphen, die zum Rendern von Text erforderlich sind.

In WPF verwendet der Fallbackmechanismus für Schriftarten die Standard-Fallbackschriftartfamilie "Globale Benutzeroberfläche" als Ersatzschriftart. Diese Schriftart ist als zusammengesetzte Schriftart definiert, deren Dateiname "GlobalUserInterface.CompositeFont" lautet. Weitere Informationen zu zusammengesetzten Schriftarten finden Sie im Abschnitt Zusammengesetzte Schriftarten in diesem Thema.

Der WPF-Schriftartfallbackmechanismus ersetzt die vorherigen Win32-Schriftartenersetzungstechnologien.

Definieren einer Fallbacksequenz für Schriftarten im Code

Sie können eine Fallbacksequenz für Schriftarten im Code definieren, mit der Sie eine alternative Schriftart definieren können. Wenn Sie ein FontFamily -Objekt erstellen, geben Sie mehrere Durch kommas getrennte Schriftartennamen für den String Parameter an, z. B. "Comic Sans MS, Verdana". Wenn in diesem Fall die Glyphen aus der Schriftart "Comic Sans MS" nicht verfügbar sind, werden Glyphen aus der Schriftart "Verdana" verwendet. Wenn weder "Comic Sans MS" noch "Verdana" über die erforderlichen Glyphen verfügen, wird die Fallbackschriftfamilie der Schriftart verwendet, die standardmäßig "Globale Benutzeroberfläche" ist.

Die folgenden Beispiele zeigen, wie Sie eine Fallbacksequenz für Schriftarten in XAML (Extensible Application Markup Language) und im Code definieren.

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>

Jede der Schriftarten in der Fallbacksequenz kann Schriftartenspeicherorte angeben. In den folgenden Beispielen wird auf "Pericles Light" als Anwendungsressource und auf "Verdana" als Element der Systemschriftartensammlung verwiesen.

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>

Zusammengesetzte Schriftarten

Die WPF-Plattform bietet ein Feature für zusammengesetzte Schriftarten, um die Erstellung mehrsprachiger Schriftarten im gesamten Bereich zu ermöglichen und zu vermeiden, dass fehlende Glyphen angezeigt werden. Zusammengesetzte Schriftarten ersetzen die Win32-Mechanismen für Schriftartverknüpfung, Schriftartenfallback, Schriftartenbindung, Schriftartenzuordnung und endbenutzerdefinierte Zeichen (EUDC).

Eine zusammengesetzte Schriftfamilie steht Anwendungen über die FontFamily Konstruktoren und Typeface wie jede andere Schriftartenfamilie zur Verfügung. Jede zusammengesetzte Schriftartfamilie hat einen Namen und kann, wie bei anderen Schriftarten, lokalisierte Varianten ihres Namens in mehreren Sprachen bereitstellen.

Das folgende Markupbeispiel zeigt, wie eine zusammengesetzte Schriftartfamilie als Datenträgerdatei definiert werden kann. Diese Datei kann wie bei jeder anderen installierten Schriftart im Windows-Standardschriftverzeichnis gespeichert werden, oder sie kann an einem beliebigen Speicherort referenziert werden, indem der URI angegeben wird, wenn auf die Familie anhand des Namens verwiesen wird.

Das folgende Beispiel zeigt das Markup der Schriftartenfamilie in einem ". CompositeFont"-Datei.

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

Die folgenden vier zusammengesetzten Schriftarten werden im Standardmäßigen Windows-Schriftartenverzeichnis im Rahmen der WPF-Installation angezeigt.

Schriftart Hinweise
GlobalMonospace.CompositeFont Rendert Text mithilfe einer Monospace-Schriftart, z. B. "Courier New" für lateinische Zeichen.
GlobalSanSerif.CompositeFont Rendert Text mithilfe einer serifenlosen Schriftart, z. B. "Arial" für lateinische Zeichen.
GlobalSerif.CompositeFont Rendert Text mithilfe einer Serifenschriftart, z. B. "Times New Roman" für lateinische Zeichen.
GlobalUserInterface.CompositeFont Rendert Text mithilfe einer Standardschriftart, z. B. "Times New Roman" für lateinische Zeichen.

Verwendung von XAML-Attributen

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

XAML-Werte

fontFamilyName
Eine Zeichenfolge, die einen Schriftfamiliennamen angibt.  Zum Beispiel: "Arial" oder "Century Gothic".

fontFamilyNamesList
Eine Zeichenfolge, die mehrere Schriftartenfamiliennamen angibt, die jeweils durch ein Komma getrennt sind (alle Leerzeichen nach einem Komma werden ignoriert). Die erste angegebene Schriftfamilie dient als primäre Schriftfamilie. Nachfolgende Schriftartenfamilien dienen als Fallbackfamilien, die in Fällen verwendet werden können, in denen die primäre Schriftfamilie nicht verfügbar oder nicht anwendbar ist. Gibt beispielsweise "Arial, Century Gothic" Arial als primäre Schriftfamilie an, wobei Century Gothic die Fallbackschriftfamilie ist.

fontFamilyFolderReference
Eine Zeichenfolge, die einen Ordner angibt, der die Schriftart zusammen mit einem Schriftfamiliennamen enthält. Der Name des Ordners und des Schriftfamiliennamens wird durch ein #-Zeichen getrennt. Der Ordnerverweis kann absolut oder relativ sein. Beispiel: "Custom Fonts\#My Custom Font".

fontFamilyUriReference
Eine Zeichenfolge, die einen URI (Uniform Resource Identifier) für die Schriftart zusammen mit einem Namen der Schriftartfamilie angibt. Der URI und der Name der Schriftfamilie werden durch ein #-Zeichen getrennt. Beispiel: "http://MyFontServer/Fonts/#My Custom Font".

Konstruktoren

FontFamily()

Initialisiert eine neue Instanz einer anonymen FontFamily-Klasse.

FontFamily(String)

Initialisiert eine neue Instanz der FontFamily-Klasse aus dem angegebenen Namen der Schriftfamilie.

FontFamily(Uri, String)

Initialisiert eine neue Instanz der FontFamily-Klasse aus dem angegebenen Namen der Schriftfamilie und einem optionalen URI-Basiswert (Uniform Resource Identifier).

Eigenschaften

Baseline

Ruft den Abstand zwischen der Baseline und dem oberen Rand der Zeichenzelle ab oder legt diesen fest.

BaseUri

Ruft den Basis-URI (Uniform Resource Identifier) ab, der verwendet wird, um den Namen einer Schriftartfamilie aufzulösen.

FamilyMaps

Ruft die Auflistung von FontFamilyMap-Objekten ab.

FamilyNames

Ruft eine Auflistung von Zeichenfolgen und CultureInfo-Werten ab, die die Schriftfamiliennamen des FontFamily-Objekts darstellen.

FamilyTypefaces

Ruft eine Auflistung von Schriftarten für das FontFamily-Objekt ab.

LineSpacing

Ruft den Zeilenabstandswert für das FontFamily-Objekt ab oder legt diesen fest. Der Zeilenabstand ist die empfohlene Entfernung von Baseline zu Baseline relativ zur Geviertgröße für den Text in dieser Schriftart.

Source

Ruft den Schriftfamiliennamen ab, der zum Erstellen des FontFamily-Objekts verwendet wird.

Methoden

Equals(Object)

Ruft einen Wert ab, der angibt, ob das aktuelle Schriftfamilienobjekt und das angegebene Schriftfamilienobjekt identisch sind.

GetHashCode()

Dient als Hashfunktion für FontFamily. Sie eignet sich für die Verwendung in Hashalgorithmen und Datenstrukturen, z. B. einer Hashtabelle.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetTypefaces()

Gibt eine Auflistung von Typeface-Objekten zurück, die die Schrifttypen am Speicherort für Systemstandardschriftarten darstellen.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt den Wert der Source-Eigenschaft zurück.

Gilt für:

Weitere Informationen