Aracılığıyla paylaş


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

ClearType ile y yönünde kenar yumuşatma uygulanan metin
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şlemler, yazılım tabanlı 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ı.

Metin işleme işlem hattının diyagramı

Buna ek olarak, karaktere veya glife göre animasyonlu metin, WPF'in sağladığı grafik donanımı imkanlarından 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, stilistik alternatifler ve süslemeler 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.

OpenType stilistik alternatif glifleri kullanan metin

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.

OpenType standardı ve swash glifleri kullanarak Metin OpenType standardı ve swash glifleri kullanarak Metin

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:

  • Uyarlanabilir ölçüm kullanarak tüm yazı 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 hizalama.

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.

  • Bir FontWeight tanımlamak için FontStretch, FontStyle ve FontFamily türlerini ayırın. Win32 programlamasında bir yazı tipi ailesi tanımlamak için italik ve kalın Boole bileşimlerinin kullanıldığı duruma kıyasla, bu daha fazla esneklik sağlar.

  • Yazma yönü (yatay veya dikey), yazı tipi adından bağımsız olarak ele alınır.

  • 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 FontFamily sınıfındaki açıklamalara 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 FontFamily sınıfındaki açıklamalara 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 motoru uygulamanıza olanak tanır.

Düzen ve Kullanıcı Arabirimi

En yüksek işlevsellik düzeyinde, metin API'leri , Labelve TextBlockgibi TextBoxyaygı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 , FontFamilyve FontSizegibi FontStyleö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.

Metin gölgesi yumuşaklık = 0,25

Aşağıdaki örnek, metne uygulanan bir gölge düşürme efekti ve gürültü göstermektedir.

Gürültülü metin gölgesi

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

OuterGlowBitmapEffect kullanarak metin gölgesi

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

BlurBitmapEffect kullanarak metin gölgesi

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.

ScaleTransform kullanılarak ölçeklendirilmiş metin

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

SkewTransform kullanılarak çarpıtılmış metin

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.

Yazı efekti dönen metnin ekran görüntüsü

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 örnek, bir FlowDocumentReader içinde sunulan ve arama, gezinme, sayfalandırma ile içerik ölçeklendirme desteği sağlayan metin içeriğini göstermektedir.

OpenType yazı tiplerini gösteren ekran görüntüsü.

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

Basit Metin Çizimi

DrawText nesnesinin DrawingContext yöntemini kullanarak WPF nesnelerine 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, FormattedText nesnesi metin sınırlarını aştığında bir üç nokta sembolü görüntülemesi gibi üç nokta sembolü desteği işlevselliği 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.

FormattedText nesnesi kullanılarak görüntülenen metin

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 metin dizesinin ana hattını temel alan bir Geometry nesnesi oluşturabilirsiniz.

Doğrusal gradyan fırça kullanarak Metin ana hattını

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.

Dolgu ve kontur için farklı renklerde metin

Üzerine resim fırçası uygulanmış metin vuruşu

Çizgi ve vurgulama için resim fırçası uygulanmış metin

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

Gelişmiş Metin Biçimlendirme

Metin API'lerinin en ileri seviyesinde WPF, TextFormatter nesnesi ve System.Windows.Media.TextFormatting ad alanındaki diğer türleri kullanarak özel metin düzeni oluşturmanızı sağlar. 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. Müşterinin, TextSource sınıfının bir uygulamasında bu yöntemleri sağlaması gereklidir. Aşağıdaki diyagramda, istemci uygulaması ile TextFormatterarasındaki metin düzeni etkileşimi gösterilmektedir.

Metin düzeni istemcisi ve TextFormatter diyagramı

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

Ayrıca bakınız