Pengantar Objek GlyphRun dan Elemen Glyphs
Topik ini menjelaskan GlyphRun objek dan Glyphs elemen .
Pengantar GlyphRun
Windows Presentation Foundation (WPF) menyediakan dukungan teks tingkat lanjut termasuk markup tingkat glyph dengan akses langsung ke Glyphs untuk pelanggan yang ingin mencegat dan mempertahankan teks setelah pemformatan. Fitur-fitur ini memberikan dukungan penting untuk berbagai persyaratan penyajian teks dalam setiap skenario berikut.
Tampilan layar dokumen berformat tetap.
Skenario cetak.
Extensible Application Markup Language (XAML) sebagai bahasa printer perangkat.
Microsoft XPS Document Writer.
Driver printer sebelumnya, output dari aplikasi Win32 ke format tetap.
Format spool cetak.
Representasi dokumen berformat tetap, termasuk klien untuk versi Windows sebelumnya dan perangkat komputasi lainnya.
Catatan
Glyphs dan GlyphRun dirancang untuk presentasi dokumen format tetap dan skenario cetak. WPF menyediakan beberapa elemen untuk tata letak umum dan skenario Antarmuka pengguna (UI) seperti Label dan TextBlock. Untuk informasi selengkapnya tentang tata letak dan skenario UI, lihat Tipografi di WPF.
Objek GlyphRun
Objek GlyphRun mewakili urutan glyph dari satu wajah font tunggal pada satu ukuran, dan dengan satu gaya penyajian.
GlyphRun mencakup detail font seperti glyph Indices dan posisi glyph individual. Ini juga mencakup titik kode Unicode asli yang dihasilkan dari, informasi pemetaan offset buffer karakter-ke-glyph, dan bendera per karakter dan per-glyph.
GlyphRun memiliki tingkat FrameworkElementtinggi yang sesuai , Glyphs. Glyphs dapat digunakan di pohon elemen dan di markup XAML untuk mewakili GlyphRun output.
Elemen Glyphs
Elemen mewakili Glyphs output dari GlyphRun dalam XAML. Sintaks markup berikut digunakan untuk menjelaskan Glyphs elemen .
<!-- The example shows how to use a Glyphs object. -->
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<StackPanel Background="PowderBlue">
<Glyphs
FontUri = "C:\WINDOWS\Fonts\TIMES.TTF"
FontRenderingEmSize = "100"
StyleSimulations = "BoldSimulation"
UnicodeString = "Hello World!"
Fill = "Black"
OriginX = "100"
OriginY = "200"
/>
</StackPanel>
</Page>
Definisi properti berikut sesuai dengan empat atribut pertama dalam markup sampel.
Properti | Deskripsi |
---|---|
FontUri | Menentukan pengidentifikasi sumber daya: nama file, Pengidentifikasi sumber daya seragam Web (URI), atau referensi sumber daya dalam aplikasi .exe atau kontainer. |
FontRenderingEmSize | Menentukan ukuran font dalam unit permukaan gambar (defaultnya adalah .96 inci). |
StyleSimulations | Menentukan bendera untuk gaya tebal dan Miring. |
BidiLevel | Menentukan tingkat tata letak dua arah. Nilai bernomor genap dan nol menyiratkan tata letak kiri ke kanan; Nilai bernomor ganjil menyiratkan tata letak kanan-ke-kiri. |
Properti indeks
Properti Indices adalah string spesifikasi glyph. Di mana urutan glyph membentuk satu kluster, spesifikasi glyph pertama dalam kluster didahului oleh spesifikasi berapa banyak glyph dan berapa banyak titik kode yang digabungkan untuk membentuk kluster. Properti Indices mengumpulkan dalam satu string properti berikut.
Indeks Glyph
Lebar lanjutan Glyph
Menggabungkan vektor lampiran glyph
Pemetaan kluster dari titik kode ke glyph
Bendera Glyph
Setiap spesifikasi glyph memiliki formulir berikut.
[GlyphIndex][,[Advance][,[uOffset][,[vOffset][,[Flags]]]]]
Metrik Glyph
Setiap glyph mendefinisikan metrik yang menentukan caranya selaras dengan Glyphslainnya . Grafik berikut mendefinisikan berbagai kualitas tipografi dari dua karakter glyph yang berbeda.
Glyphs Markup
Contoh kode berikut menunjukkan cara menggunakan berbagai properti Glyphs elemen di XAML.
<!-- The example shows how to use different property settings of Glyphs objects. -->
<Canvas
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="PowderBlue"
>
<Glyphs
FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "ItalicSimulation"
UnicodeString = "Hello World!"
Fill = "SteelBlue"
OriginX = "50"
OriginY = "75"
/>
<!-- "Hello World!" with default kerning -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
FontRenderingEmSize = "36"
UnicodeString = "Hello World!"
Fill = "Maroon"
OriginX = "50"
OriginY = "150"
/>
<!-- "Hello World!" with explicit character widths for proportional font -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\ARIAL.TTF"
FontRenderingEmSize = "36"
UnicodeString = "Hello World!"
Indices = ",80;,80;,80;,80;,80;,80;,80;,80;,80;,80;,80"
Fill = "Maroon"
OriginX = "50"
OriginY = "225"
/>
<!-- "Hello World!" with fixed-width font -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\COUR.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "BoldSimulation"
UnicodeString = "Hello World!"
Fill = "Maroon"
OriginX = "50"
OriginY = "300"
/>
<!-- "Open file" without "fi" ligature -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\TIMES.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "BoldSimulation"
UnicodeString = "Open file"
Fill = "SlateGray"
OriginX = "400"
OriginY = "75"
/>
<!-- "Open file" with "fi" ligature -->
<Glyphs
FontUri = "C:\WINDOWS\Fonts\TIMES.TTF"
FontRenderingEmSize = "36"
StyleSimulations = "BoldSimulation"
UnicodeString = "Open file"
Indices = ";;;;;(2:1)191"
Fill = "SlateGray"
OriginX = "400"
OriginY = "150"
/>
</Canvas>
Baca juga
.NET Desktop feedback