FontFamily Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili keluarga font terkait.
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
- Warisan
-
FontFamily
- Atribut
Keterangan
Keluarga font adalah sekumpulan jenis huruf yang memiliki nama keluarga yang sama, seperti "Times New Roman", tetapi berbeda dalam fitur. Perbedaan fitur ini termasuk Style, seperti miring, dan Weight, seperti tebal.
Contoh typefaces yang merupakan anggota keluarga font "Times New Roman"
Sebagian besar elemen antarmuka pengguna (UI), seperti Button dan TextBlock, menyediakan FontFamily properti yang dapat digunakan untuk menentukan font untuk konten teks kontrol. Anda menentukan font dengan mengatur properti tersebut dengan FontFamily nilai. Contoh berikut menunjukkan cara mereferensikan font, dalam Extensible Application Markup Language (XAML) dan dalam kode.
myTextBlock.FontFamily = new FontFamily("Comic Sans MS");
myTextBlock.FontFamily = New FontFamily("Comic Sans MS")
<TextBlock FontFamily="Comic Sans MS">Hello, world</TextBlock>
Dalam contoh sebelumnya, font yang direferensikan, "Comic Sans MS", disebut dengan nama yang ramah. Selain itu, dalam contoh ini font diasumsikan berada dalam koleksi font sistem.
Menentukan Font dalam Direktori Alternatif
Aplikasi Windows Presentation Foundation (WPF) dapat menentukan direktori, selain direktori yang berisi kumpulan font sistem, untuk menyelesaikan referensi font. Nama font yang mudah diingat dapat menentukan nilai pengidentifikasi sumber daya seragam absolut (URI) untuk mengatasi referensi font, seperti yang ditunjukkan dalam Contoh kode dan Extensible Application Markup Language (XAML) berikut.
// 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>
Nama font yang mudah diingat juga dapat menentukan nilai URI relatif, yang memerlukan URI dasar untuk menyelesaikan referensi font. Properti BaseUriFontFamily objek sesuai dengan nilai URI dasar. Contoh kode berikut menunjukkan cara membuat referensi font yang terdiri dari nilai URI dasar dan nilai URI relatif.
// 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")
Anda dapat menggunakan nilai URI dasar saat mereferensikan font yang dikemas sebagai bagian dari aplikasi. Misalnya, nilai URI dasar dapat menjadi URI "pack://application", yang memungkinkan Anda mereferensikan font yang dikemas sebagai sumber daya aplikasi. Contoh kode berikut menunjukkan referensi font yang terdiri dari nilai URI dasar dan nilai URI relatif.
// 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 Ketika ditentukan sebagai atribut dalam markup, nilai URI dasar selalu tersirat - nilainya adalah URI halaman XAML. Nilai URI dasar tersirat digunakan dengan nilai URI relatif dalam string nama yang mudah diingat untuk mendapatkan lokasi font. Dalam contoh Extensible Application Markup Language (XAML) berikut, perhatikan bahwa nilai URI relatif menggunakan notasi "./", yang berarti "di folder saat ini" dari nilai URI dasar.
<TextBlock FontFamily="./resources/#Pericles Light">
Aegean Sea
</TextBlock>
Aplikasi WPF dapat mengemas font sebagai item konten, item sumber daya, atau item sumber daya pustaka. Untuk informasi selengkapnya, lihat Mengemas Font dengan Aplikasi.
Font Fallback
Fallback font mengacu pada penggantian otomatis font selain font yang dipilih oleh aplikasi klien. Ada dua alasan utama mengapa fallback font dipanggil:
Font yang ditentukan oleh aplikasi klien tidak ada pada sistem.
Font yang ditentukan oleh aplikasi klien tidak berisi glyph yang diperlukan untuk merender teks.
Dalam WPF, mekanisme fallback font menggunakan keluarga font fallback default, "Antarmuka Pengguna Global", sebagai font pengganti. Font ini didefinisikan sebagai font komposit, yang nama filenya adalah "GlobalUserInterface.CompositeFont". Untuk informasi selengkapnya tentang font komposit, lihat bagian Font Komposit dalam topik ini.
Mekanisme fallback font WPF menggantikan teknologi penggantian font Win32 sebelumnya.
Menentukan Urutan Fallback Font dalam Kode
Anda dapat menentukan urutan fallback font dalam kode Anda, yang memungkinkan Anda menentukan font alternatif. Saat Anda membuat FontFamily objek, berikan beberapa nama keluarga font, dipisahkan dengan koma, untuk String parameter , seperti "Comic Sans MS, Verdana". Dalam hal ini, jika glyph dari typeface "Comic Sans MS" tidak tersedia, glyph dari typeface "Verdana" digunakan. Jika "Comic Sans MS" atau "Verdana" tidak memiliki glyph yang diperlukan, keluarga font fallback dari typeface digunakan, yaitu "Antarmuka Pengguna Global" secara default.
Contoh berikut menunjukkan cara menentukan urutan fallback font, dalam Extensible Application Markup Language (XAML) dan dalam kode.
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>
Salah satu font dalam urutan fallback dapat menentukan lokasi font. Dalam contoh berikut, "Pericles Light" dirujuk sebagai sumber daya aplikasi, dan "Verdana" dirujuk sebagai anggota koleksi font sistem.
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>
Font Komposit
Platform WPF menyediakan fitur font komposit untuk memungkinkan pembangunan font multibahasa rentang penuh, dan untuk menghindari menampilkan glyph yang hilang. Font komposit menggantikan mekanisme penautan font Win32, fallback font, pengikatan font, asosiasi font, dan karakter yang ditentukan pengguna akhir (EUDC).
Keluarga font komposit tersedia untuk aplikasi melalui FontFamily konstruktor dan Typeface sama seperti keluarga font lainnya. Setiap keluarga font komposit diberi nama, dan, seperti halnya font lainnya, dapat menyediakan varian namanya yang dilokalkan dalam beberapa bahasa.
Contoh markup berikut menunjukkan bagaimana keluarga font komposit dapat didefinisikan sebagai file disk. File ini dapat disimpan dalam direktori font Windows default seperti fonta terinstal lainnya, atau dapat direferensikan di lokasi mana pun dengan menyertakan URI-nya saat merujuk keluarga berdasarkan nama.
Contoh berikut menunjukkan markup keluarga font dalam ". File 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>
Empat font komposit berikut muncul di direktori font Windows default sebagai bagian dari penginstalan WPF.
Font | Catatan |
---|---|
GlobalMonospace.CompositeFont | Merender teks dengan menggunakan font monospace, misalnya, "Courier New" untuk karakter Latin. |
GlobalSanSerif.CompositeFont | Merender teks dengan menggunakan font serif sans, misalnya, "Arial" untuk karakter Latin. |
GlobalSerif.CompositeFont | Merender teks dengan menggunakan font serif, misalnya, "Times New Roman" untuk karakter Latin. |
GlobalUserInterface.CompositeFont | Merender teks dengan menggunakan font default, misalnya, "Times New Roman" untuk karakter Latin. |
Penggunaan Atribut XAML
<object FontFamily="fontFamilyName"/>
- or -
<object FontFamily="fontFamilyNamesList"/>
- or -
<object FontFamily="fontFamilyFolderReference"/>
- or -
<object FontFamily="fontFamilyUriReference"/>
Nilai XAML
fontFamilyName
String yang menentukan nama keluarga font. Misalnya, "Arial"
atau "Century Gothic"
.
fontFamilyNamesList
String yang menentukan beberapa nama keluarga font, masing-masing dipisahkan oleh koma (spasi kosong setelah koma diabaikan). Keluarga font pertama yang ditentukan berfungsi sebagai keluarga font utama; keluarga font berikutnya berfungsi sebagai keluarga fallback yang akan digunakan dalam kasus di mana keluarga font utama tidak tersedia atau tidak berlaku. Misalnya, "Arial, Century Gothic"
menentukan Arial sebagai keluarga font utama, dengan Century Gothic sebagai keluarga font fallback.
fontFamilyFolderReference
String yang menentukan folder yang berisi font, bersama dengan nama keluarga font. Folder dan nama keluarga font dibatasi oleh karakter # . Referensi folder mungkin absolut, atau relatif. Contohnya,"Custom Fonts\#My Custom Font"
.
fontFamilyUriReference
String yang menentukan pengidentifikasi sumber daya seragam (URI) untuk font, bersama dengan nama keluarga font. Nama keluarga URI dan font dibatasi oleh karakter # . Contohnya,"http://MyFontServer/Fonts/#My Custom Font"
.
Konstruktor
FontFamily() |
Menginisialisasi instans baru kelas anonim FontFamily . |
FontFamily(String) |
Menginisialisasi instans FontFamily baru kelas dari nama keluarga font yang ditentukan. |
FontFamily(Uri, String) |
Menginisialisasi instans FontFamily baru kelas dari nama keluarga font yang ditentukan dan nilai pengidentifikasi sumber daya seragam dasar (URI) opsional. |
Properti
Baseline |
Mendapatkan atau mengatur jarak antara garis besar dan sel karakter di atas. |
BaseUri |
Mendapatkan pengidentifikasi sumber daya seragam dasar (URI) yang digunakan untuk menyelesaikan nama keluarga font. |
FamilyMaps |
Mendapatkan koleksi FontFamilyMap objek. |
FamilyNames |
Mendapatkan kumpulan string dan CultureInfo nilai yang mewakili nama FontFamily keluarga font objek. |
FamilyTypefaces |
Mendapatkan koleksi typefaces untuk FontFamily objek . |
LineSpacing |
Mendapatkan atau mengatur nilai penspasian baris untuk FontFamily objek. Penspasian baris adalah jarak garis besar-ke-garis besar yang direkomendasikan untuk teks dalam font ini relatif terhadap ukuran em. |
Source |
Mendapatkan nama keluarga font yang digunakan untuk membuat FontFamily objek. |
Metode
Equals(Object) |
Mendapatkan nilai yang menunjukkan apakah objek keluarga font saat ini dan objek keluarga font yang ditentukan sama. |
GetHashCode() |
Berfungsi sebagai fungsi hash untuk FontFamily. Ini cocok untuk digunakan dalam algoritma hashing dan struktur data seperti tabel hash. |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
GetTypefaces() |
Mengembalikan kumpulan Typeface objek yang mewakili jenis wajah di lokasi font sistem default. |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan nilai Source properti . |