WPF'de Tipografi

Bu konu başlığında WPF'nin başlıca tipografik özellikleri tanıtılmaktadır. Bu özellikler arasında gelişmiş metin işleme kalitesi ve performansı, OpenType tipografi desteği, gelişmiş uluslararası metin, gelişmiş yazı tipi desteği ve yeni metin uygulaması programlama arabirimleri (API' ler) bulunur.

Metnin Kalitesi ve Performansı İyileştirildi

WPF'deki metin, metnin netliğini ve okunabilirliğini geliştiren Microsoft ClearType kullanılarak işlenir. ClearType, Microsoft tarafından geliştirilen ve dizüstü bilgisayar ekranları, Pocket PC ekranları ve düz panel monitörleri gibi mevcut LCD'lerde (Liquid Crystal Monitörler) metnin okunabilirliğini geliştiren bir yazılım teknolojisidir. ClearType, bir pikselin kesirli bir bölümündeki karakterleri hizalayarak metnin gerçek şekline daha uygun bir şekilde görüntülenmesini sağlayan alt piksel işlemeyi kullanır. Ek çözünürlük, metin ekranındaki küçük ayrıntıların netliğini artırarak uzun süreler boyunca okumayı çok daha kolay hale getirir. WPF'de ClearType'ın bir diğer geliştirmesi de metin karakterlerinde sığ eğrilerin üst ve alt kısımlarını düzelten y yönlü kenar yumuşatmadır. ClearType özellikleri hakkında daha fazla ayrıntı için bkz . ClearType'a Genel Bakış.

Text with ClearType y-direction anti-aliasing
ClearType y yönlü antialiasing içeren metin

Makinenizin gereken en düşük donanım düzeyini karşılaması koşuluyla metin işleme işlem hattının tamamı WPF'de donanım hızlandırılabilir. Donanım kullanılarak gerçekleştirilemeyen işleme, yazılım işlemeye geri döner. Donanım hızlandırma, tek tek glifleri depolamaktan, glifleri glif çalıştırmalarına birleştirmeye, efektleri uygulamaya, görüntülenen son çıkışa ClearType karıştırma algoritması uygulamaya kadar metin işleme işlem hattının tüm aşamalarını etkiler. Donanım hızlandırma hakkında daha fazla bilgi için bkz . Grafik İşleme Katmanları.

Diagram of the text rendering pipeline

Buna ek olarak, karaktere veya karaktere göre animasyonlu metin, WPF tarafından etkinleştirilen grafik donanım özelliğinden tam olarak yararlanır. Bu, düz metin animasyonuyla sonuç verir.

Zengin Tipografi

OpenType yazı tipi biçimi, TrueType® yazı tipi biçiminin bir uzantısıdır. OpenType yazı tipi biçimi Microsoft ve Adobe tarafından birlikte geliştirilmiştir ve gelişmiş tipografik özelliklerin zengin bir yelpazesini sağlar. Typography nesnesi, stil alternatifleri ve yıkamalar gibi OpenType yazı tiplerinin birçok gelişmiş özelliğini kullanıma sunar. Windows SDK'sı, Pericles ve Pescadero yazı tipleri gibi zengin özelliklerle tasarlanmış bir dizi örnek OpenType yazı tipi sağlar. Daha fazla bilgi için bkz . Örnek OpenType Yazı Tipi Paketi.

Pericles OpenType yazı tipi, standart karakter kümesine stil alternatifleri sağlayan ek glifler içerir. Aşağıdaki metin stilistik alternatif glifleri görüntüler.

Text using OpenType stylistic alternate glyphs

Swash'lar genellikle hat sanatıyla ilişkili özenli süslemeler kullanan dekoratif gliflerdir. Aşağıdaki metin, Pescadero yazı tipi için standart ve swash karakterlerini görüntüler.

Text using OpenType standard and swash glyphs

OpenType özellikleri hakkında daha fazla bilgi için bkz . OpenType Yazı Tipi Özellikleri.

Gelişmiş Uluslararası Metin Desteği

WPF, aşağıdaki özellikleri sağlayarak gelişmiş uluslararası metin desteği sağlar:

  • Uyarlamalı ölçümü kullanarak tüm yazma sistemlerinde otomatik satır aralığı.

  • Uluslararası metinler için geniş destek. Daha fazla bilgi için bkz. WPF için Genelleştirme.

  • Dil destekli satır kesme, heceleme ve yaslama.

Gelişmiş Yazı Tipi Desteği

WPF, aşağıdaki özellikleri sağlayarak gelişmiş yazı tipi desteği sağlar:

  • Tüm metinler için Unicode. Yazı tipi davranışı ve seçimi artık karakter kümesi veya kod sayfası gerektirmez.

  • Yazı tipi davranışı, sistem yerel ayarı gibi genel ayarlardan bağımsızdır.

  • tanımlamak FontFamilyiçin , FontStretchve FontStyle türlerini ayırınFontWeight. Bu, bir yazı tipi ailesi tanımlamak için Boole ve italik ve kalın bileşimlerinin kullanıldığı Win32 programlamasından daha fazla esneklik sağlar.

  • Yazı tipi adından bağımsız olarak işlenen yazma yönü (yatay ve dikey).

  • Bileşik yazı tipi teknolojisini kullanarak taşınabilir XML dosyasında yazı tipi bağlama ve yazı tipi geri dönüşü. Bileşik yazı tipleri, tam aralıklı çok dilli yazı tiplerinin oluşturulmasını sağlar. Bileşik yazı tipleri ayrıca eksik gliflerin görüntülenmesini önleyen bir mekanizma sağlar. Daha fazla bilgi için sınıftaki açıklamalara FontFamily bakın.

  • Tek dilli yazı tipleri grubu kullanılarak bileşik yazı tiplerinden oluşturulmuş uluslararası yazı tipleri. Bu, birden çok dil için yazı tipi geliştirirken kaynak maliyetlerinden tasarruf sağlar.

  • Belgeye eklenmiş bileşik yazı tipleri, böylece belge taşınabilirliği sağlar. Daha fazla bilgi için sınıftaki açıklamalara FontFamily bakın.

Yeni Metin Uygulaması Programlama Arabirimleri (API'ler)

WPF, geliştiricilerin uygulamalarına metin eklerken kullanması için çeşitli metin API'leri sağlar. Bu API'ler üç kategoride gruplandırılır:

  • Düzen ve kullanıcı arabirimi. Grafik kullanıcı arabirimi (GUI) için ortak metin denetimleri.

  • Basit metin çizimi. Doğrudan nesnelere metin çizmenizi sağlar.

  • Gelişmiş metin biçimlendirmesi. Özel bir metin altyapısı uygulamanıza olanak tanır.

Düzen ve Kullanıcı Arabirimi

En yüksek işlevsellik düzeyinde, metin API'leri , TextBlockve TextBoxgibi Labelyaygın kullanıcı arabirimi denetimleri sağlar. Bu denetimler bir uygulama içindeki temel kullanıcı arabirimi öğelerini sağlar ve metin sunmanın ve metinlerle etkileşim kurmanın kolay bir yolunu sunar. gibi RichTextBox denetimler ve PasswordBox daha gelişmiş veya özelleştirilmiş metin işlemeyi etkinleştirir. Ve , ve gibi TextRangeTextSelectionTextPointer sınıflar yararlı metin işlemeyi etkinleştirir. Bu kullanıcı arabirimi denetimleri, metni işlemek için kullanılan yazı tipini denetlemenizi sağlayan , FontSizeve FontStylegibi FontFamilyözellikler sağlar.

Bit Eşlem Efektlerini, Dönüşümleri ve Metin Efektlerini Kullanma

WPF, bit eşlem efektleri, dönüşümler ve metin efektleri gibi özellikleri kullanarak metnin görsel olarak ilginç kullanımlarını oluşturmanıza olanak tanır. Aşağıdaki örnekte metne uygulanan tipik bir gölge efekti türü gösterilmektedir.

Text shadow with Softness = 0.25

Aşağıdaki örnekte, metne uygulanan bir gölge efekti ve kirlilik gösterilmektedir.

Text shadow with noise

Aşağıdaki örnekte metne uygulanan dış parlama efekti gösterilmektedir.

Text shadow using an OuterGlowBitmapEffect

Aşağıdaki örnekte metne uygulanan bir bulanıklaştırma efekti gösterilmektedir.

Text shadow using a BlurBitmapEffect

Aşağıdaki örnekte, x ekseni boyunca %150 ölçeklendirilmiş ikinci metin satırı ve y ekseni boyunca %150 ölçeklendirilmiş üçüncü metin satırı gösterilmektedir.

Text scaled using a ScaleTransform

Aşağıdaki örnekte x ekseni boyunca eğilmiş metin gösterilmektedir.

Text skewed using a SkewTransform

TextEffect Nesne, metni bir metin dizesinde bir veya daha fazla karakter grubu olarak ele almanızı sağlayan yardımcı bir nesnedir. Aşağıdaki örnekte, döndürülmekte olan tek bir karakter gösterilmektedir. Her karakter 1 saniyelik aralıklarla bağımsız olarak döndürülür.

Screenshot of text effect rotating text

Akış Belgelerini Kullanma

WPF, yaygın kullanıcı arabirimi denetimlerine ek olarak, metin sunusu için bir düzen denetimi de sunar.FlowDocument FlowDocument öğesiyle DocumentViewer birlikte, değişen düzen gereksinimlerine sahip büyük miktarda metin için bir denetim sağlar. Düzen denetimleri, diğer kullanıcı arabirimi denetimlerinin Typography nesne ve yazı tipiyle ilgili özellikleri aracılığıyla gelişmiş tipografiye erişim sağlar.

Aşağıdaki örnekte, içinde barındırılan FlowDocumentReaderve arama, gezinti, sayfalandırma ve içerik ölçeklendirme desteği sağlayan metin içeriği gösterilmektedir.

Screenshot that shows OpenType fonts.

Daha fazla bilgi için bkz . WPF'deki Belgeler.

Basit Metin Çizimi

Nesnenin yöntemini DrawingContext kullanarak wpf nesnelerine DrawText doğrudan metin çizebilirsiniz. Bu yöntemi kullanmak için bir FormattedText nesnesi oluşturursunuz. Bu nesne, metindeki her karakterin ayrı ayrı biçimlendirilebildiği çok satırlı metin çizmenizi sağlar. nesnesinin FormattedText işlevselliği, Windows API'sindeki DrawText bayraklarının işlevlerinin çoğunu içerir. Ayrıca nesne, FormattedText metin sınırlarını aştığında üç noktanın görüntülendiği üç nokta desteği gibi işlevler içerir. Aşağıdaki örnekte, ikinci ve üçüncü sözcüklerde doğrusal gradyan da dahil olmak üzere çeşitli biçimlere sahip metin gösterilmektedir.

Text displayed using FormattedText object

Biçimlendirilmiş metni nesnelere Geometry dönüştürerek diğer görsel olarak ilginç metin türlerini oluşturmanıza olanak sağlayabilirsiniz. Örneğin, bir Geometry metin dizesinin ana hattını temel alan bir nesne oluşturabilirsiniz.

Text outline using a linear gradient brush

Aşağıdaki örneklerde, dönüştürülen metnin vuruşunu, dolgusunu ve vurgularını değiştirerek ilginç görsel efektler oluşturmanın çeşitli yolları gösterilmektedir.

Text with different colors for fill and stroke

Text with image brush applied to stroke

Text with image brush applied to stroke and highlight

Nesne hakkında FormattedText daha fazla bilgi için bkz . Biçimlendirilmiş Metin Çizme.

Gelişmiş Metin Biçimlendirme

Metin API'lerinin en gelişmiş düzeyinde WPF, nesne ve ad alanında diğer türleri System.Windows.Media.TextFormatting kullanarak TextFormatter özel metin düzeni oluşturma olanağı sunar. TextFormatter ve ilişkili sınıfları, uluslararası metinler için kendi karakter biçimleri, paragraf stilleri, satır kesme kuralları ve diğer düzen özelliklerini destekleyen özel metin düzeni uygulamanıza olanak sağlar. WPF metin düzeni desteğinin varsayılan uygulamasını geçersiz kılmak istediğiniz çok az durum vardır. Ancak, metin düzenleme denetimi veya uygulaması oluşturuyorsanız, varsayılan WPF uygulamasından farklı bir uygulama gerektirebilirsiniz.

Geleneksel bir metin API'sinin TextFormatter aksine, bir dizi geri çağırma yöntemi aracılığıyla bir metin düzeni istemcisiyle etkileşim kurar. İstemcinin sınıfın bir uygulamasında bu yöntemleri sağlamasını TextSource gerektirir. Aşağıdaki diyagramda, istemci uygulaması ile TextFormatterarasındaki metin düzeni etkileşimi gösterilmektedir.

Diagram of text layout client and TextFormatter

Özel metin düzeni oluşturma hakkında daha fazla ayrıntı için bkz . Gelişmiş Metin Biçimlendirmesi.

Ayrıca bkz.