Bagikan melalui


FontFamily Kelas

Definisi

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.

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

Berlaku untuk

Lihat juga