FontFamily Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 Schriftfamilie ist eine Reihe von Schriftarten, die denselben Familiennamen teilen, z. B. "Times New Roman", aber die sich in Features unterscheiden. Zu diesen Featureunterschieden gehören Stylez. B. Kursiv und Weightfett.

Beispiel für Schriftarten, die Mitglieder der Schriftartenfamilie "Times New Roman" sind
Die meisten Ui-Elemente (User Interface), 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. In den folgenden Beispielen wird gezeigt, wie sie auf eine Schriftart verweisen, in Extensible Application Markup Language (XAML) und im Code.
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 die Schriftart, auf die verwiesen wird, "Comic Sans MS", durch den Anzeigenamen bezeichnet. Außerdem wird in diesem Beispiel davon ausgegangen, dass sich die Schriftart in der Systemschriftartsammlung befindet.
Angeben von Schriftarten in alternativen Verzeichnissen
Eine Windows Presentation Foundation (WPF)-Anwendung kann ein Verzeichnis angeben, das nicht das Verzeichnis enthält, das die Systemschriftartsammlung enthält, um Schriftartbezüge aufzulösen. Der Anzeigename der Schriftart kann einen absoluten URI-Wert (Uniform Resource Identifier) angeben, um den Schriftbezug aufzulösen, wie in den folgenden Beispielen für Extensible Application Markup Language (XAML) und Codebeispiele 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 zum Auflösen des Schriftartverweis erfordert. 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 verpackt ist. Der Basis-URI-Wert kann beispielsweise ein "pack://application"-URI sein, mit dem Sie auf Schriftarten verweisen können, die als Anwendungsressourcen verpackt 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 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 Beispiel für extensible Application Markup Language (XAML), 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, ein Ressourcenelement oder ein Bibliotheksressourcenelement verpacken. Weitere Informationen finden Sie unter Schriftarten mit Anwendungen verpacken.
Schriftarten-Fallback
Der Schriftfallback bezieht sich auf die automatische Ersetzung einer anderen Schriftart als die Schriftart, die von der Clientanwendung ausgewählt wird. Es gibt zwei hauptgründe, warum der Fallback von Schriftarten aufgerufen wird:
Die schriftart, die von der Clientanwendung angegeben wird, ist im System nicht vorhanden.
Die schriftart, die von der Clientanwendung angegeben wird, enthält nicht die Glyphen, die zum Rendern von Text erforderlich sind.
InWPF verwendet der Fallbackmechanismus die Standard-Fallbackschriftartfamilie "Global User Interface", als Ersatzschriftart. Diese Schriftart wird als zusammengesetzte Schriftart definiert, deren Dateinamen "GlobalUserInterface.CompositeFont" lautet. Weitere Informationen zu zusammengesetzten Schriftarten finden Sie im Abschnitt "Zusammengesetzte Schriftarten" in diesem Thema.
Der WPF-Schriftarten-Fallbackmechanismus ersetzt vorherige Win32-Schriftartenersetzungstechnologien.
Definieren einer Fallbacksequenz in Code
Sie können eine Fallbacksequenz in Ihrem Code definieren, mit der Sie eine alternative Schriftart definieren können. Wenn Sie ein FontFamily Objekt erstellen, stellen Sie mehrere Schriftartfamiliennamen bereit, die durch Kommas getrennt sind, für den String Parameter, z. B. "Comic Sans MS, Verdana". In diesem Fall sind die Glyphen aus der Schriftart "Comic Sans MS" nicht verfügbar, Glyphen aus der "Verdana"-Schriftart werden verwendet. Wenn weder "Comic Sans MS" noch "Verdana" über die erforderlichen Glyphen verfügen, wird die Fallbackschriftartfamilie der Schriftart verwendet, die standardmäßig "Globale Benutzeroberfläche" ist.
Die folgenden Beispiele zeigen, wie Sie eine Fallbacksequenz für Schriftarten definieren, in Extensible Application Markup Language (XAML) und im 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>
Jede der Schriftarten in der Fallbacksequenz kann Schriftartenspeicherorte angeben. In den folgenden Beispielen wird auf "Pericles Light" als Anwendungsressource verwiesen, und auf "Verdana" wird als Systemschriftsammlungselement 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 eine zusammengesetzte Schriftartfunktion, um die Erstellung von mehrsprachigen Vollbereichsschriftarten zu ermöglichen und fehlende Glyphen anzuzeigen. Zusammengesetzte Schriftarten ersetzen die Mechanismen win32 font linking, font fallback, font binding, font association, end-user-defined characters (EUDC).
Eine zusammengesetzte Schriftartfamilie ist für Anwendungen über die FontFamily und Typeface Konstruktoren wie jede andere Schriftartfamilie verfügbar. Jede zusammengesetzte Schriftartfamilie wird benannt, und wie bei anderen Schriftarten kann lokalisierte Varianten des Namens in mehreren Sprachen bereitgestellt werden.
Das folgende Markupbeispiel zeigt, wie eine zusammengesetzte Schriftartfamilie als Datenträgerdatei definiert werden kann. Diese Datei kann in dem Standardmäßigen Windows Schriftartverzeichnis wie bei jeder anderen installierten Schriftart gespeichert werden oder an jedem Beliebigen Speicherort referenziert werden, indem er seinen URI eingibt, wenn die Familie nach Name referenziert wird.
Im folgenden Beispiel wird das Schriftartfamilienmarkup in einem "-Code veranschaulicht. 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 Standard-Windows Schriftartverzeichnis als Teil 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 Schriftartfamiliennamen angibt. Zum Beispiel: "Arial" oder "Century Gothic".
fontFamilyNamesList
Eine Zeichenfolge, die mehrere Schriftartfamiliennamen angibt, die jeweils durch ein Komma getrennt sind (alle Leerzeichen, die einem Komma folgen, werden ignoriert). Die erste angegebene Schriftfamilie dient als primäre Schriftartfamilie; Nachfolgende Schriftfamilien dienen als Fallbackfamilien, die in Fällen verwendet werden, in denen die primäre Schriftartfamilie nicht verfügbar ist oder nicht zutreffend ist. Gibt beispielsweise "Arial, Century Gothic" Arial als primäre Schriftfamilie an, wobei Century Gothic als Fallbackschriftartfamilie verwendet wird.
fontFamilyFolderReference
Eine Zeichenfolge, die einen Ordner mit der Schriftart sowie einen Schriftartfamiliennamen angibt. Der Name der Ordner- und Schriftfamilie 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 angibt, zusammen mit einem Schriftfamiliennamen. Der Name der URI- und Schriftfamilie wird 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. |