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