WPF'de Tipografi

Bu konuda WPF 'nin önemli tipografik özellikleri tanıtılmaktadır. Bu özellikler, metin işleme, OpenType tipografi desteği, gelişmiş uluslararası metin, gelişmiş yazı tipi desteği ve yeni metin uygulama programlama arabirimleri (API 'Ler) için geliştirilmiş kalite ve performans içerir.

Metnin geliştirilmiş kalitesi ve performansı

WPF 'deki metin, metnin açıklık ve okunabilirliğini artıran Microsoft ClearType kullanılarak işlenir. ClearType, dizüstü ekranları, Pocket PC ekranları ve düz panel izleyicileri gibi mevcut lcd 'lerde (sıvı kristal ekranlar) metinlerin okunabilirliğini artıran Microsoft tarafından geliştirilen bir yazılım teknolojisidir. ClearType, bir pikselin kesirli bölümünde karakterler hizalanarak metnin gerçek şeklinin daha büyük bir uygunluğa eşit bir şekilde görüntülenmesine olanak sağlayan alt piksel işleme kullanır. Ek çözüm, metin görüntüleme içindeki küçük ayrıntıların keskinliğini artırarak uzun süreleri okumayı çok daha kolay hale getirir. WPF 'nin başka bir gelişimi de, metin karakterlerine yönelik yüzeysel eğrilerin ve botları yumuşatma olan y yönü düzgünleştirmedir. ClearType özellikleri hakkında daha fazla bilgi için bkz. ClearType Genel Bakış.

Text with ClearType y-direction anti-aliasing
ClearType y yönünde düzgünleştirme içeren metin

Tüm metin işleme işlem hattı, makinenizde gereken en düşük donanım düzeyini karşıladığı için WPF 'de donanım hızlandırmalı olabilir. Donanım kullanılarak gerçekleştirilemediği işleme, yazılım işlemeye geri döner. Donanım hızlandırma, metin işleme işlem hattının tüm aşamalarını etkiler. tek glifleri depolamadan, glifleri karakter çalıştırmalarıyla birleştirme, etkileri uygulama, son görünen çıktıya ClearType karıştırma algoritmasını uygulama. Donanım hızlandırma hakkında daha fazla bilgi için bkz. grafik Işleme katmanları.

Diagram of the text rendering pipeline

Buna ek olarak, karakter veya karakter olarak hareketli metin, WPF tarafından etkinleştirilen grafik donanımı yeteneğinin tam olarak yararlanır. Bu, düz metin animasyonuna neden olur.

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 ortaklaşa ortaklaşa geliştirilmiştir ve zengin bir gelişmiş tipografik özellikler sunar. TypographyNesnesi, OpenType yazı tiplerinin stil alternatifleri ve süslemeler gibi gelişmiş özelliklerinin çoğunu gösterir. Windows SDK, Pericles ve pescadero fontları gibi zengin özelliklerle tasarlanan örnek bir OpenType yazı tipi kümesi sağlar. Daha fazla bilgi için bkz. örnek OpenType yazı tipi paketi.

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

Text using OpenType stylistic alternate glyphs

Süslemeler, kaligrafi ile sık kullanılan süslemeler ile ilişkili olan dekoratif karakterlerdir. Aşağıdaki metin Pescadero yazı tipi için standart ve dalgalı glifleri 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ı metin için geniş destek. Daha fazla bilgi için bkz. WPF Için Genelleştirme.

  • Dil temelli satır sonu, heceleme ve gerekçe.

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.

  • Sistem yerel ayarı gibi genel ayarlardan bağımsız yazı tipi davranışı.

  • FontWeightFontStretch Tanımlama için ayrı, ve FontStyle türleri FontFamily . Bu, bir yazı tipi ailesini tanımlamak için italik ve kalın olan Boole birleşimlerinin kullanıldığı Win32 programından daha fazla esneklik sağlar.

  • Yazma yönü (yatay veya dikey), yazı tipi adından bağımsız olarak işlenir.

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

  • Tek dildeki bir yazı tipi grubu kullanılarak bileşik yazı tiplerinden oluşturulan uluslararası yazı tipleri. Bu, birden çok dil için yazı tipi geliştirirken kaynak maliyetlerine kaydedilir.

  • Belge taşınabilirliği sağlayan bileşik yazı tipleri bir belgeye katıştırılır. Daha fazla bilgi için, sınıfındaki açıklamalara bakın FontFamily .

Yeni metin uygulama programlama arabirimleri (API 'Ler)

WPF, geliştiricilerin uygulamalarına metin eklerken kullanacağı birkaç metin API 'si 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.

  • Hafif metin çizme. Doğrudan nesnelere metin çizmenizi sağlar.

  • Gelişmiş metin biçimlendirme. Ö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,, ve gibi ortak kullanıcı arabirimi (UI) denetimleri sağlar LabelTextBlockTextBox . Bu denetimler, bir uygulama içinde temel kullanıcı arabirimi öğeleri sağlar ve metin sunmak ve bunlarla etkileşim kurmak için kolay bir yol sunar. Ve gibi denetimler RichTextBox , PasswordBox daha gelişmiş veya özelleştirilmiş metin işleme sağlar. Ve,, ve gibi sınıflar TextRangeTextSelectionTextPointer yararlı metin işlemesini etkinleştirir. Bu UI denetimleri,, ve gibi özellikleri sağlar, bu da FontFamilyFontSizeFontStyle metni işlemek için kullanılan yazı tipini denetlemenizi sağlar.

Bit eşlem efektleri, dönüşümler ve metin efektlerini kullanma

WPF, bit eşlem efektleri, dönüşümler ve metin etkileri gibi özellikleri kullanarak metnin görsel açıdan ilgi çekici kullanımlarını oluşturmanızı sağlar. Aşağıdaki örnek, metin için uygulanan tipik bir gölge etkisi türünü gösterir.

Text shadow with Softness = 0.25

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

Text shadow with noise

Aşağıdaki örnek, metne uygulanan bir dış ışıma efektini gösterir.

Text shadow using an OuterGlowBitmapEffect

Aşağıdaki örnek, metne uygulanan bir bulanıklaştırma efektini gösterir.

Text shadow using a BlurBitmapEffect

Aşağıdaki örnek, x ekseni ve y ekseni üzerinde %150 ile ölçeklenmiş üçüncü metin satırındaki 150 metnin ikinci satırını gösterir.

Text scaled using a ScaleTransform

Aşağıdaki örnek, x ekseni üzerinde eğilmiş metni gösterir.

Text skewed using a SkewTransform

Bir TextEffect nesne, metni bir metin dizesinde bir veya daha fazla karakter grubu olarak değerlendirme olanağı sağlayan bir yardımcı nesnedir. Aşağıdaki örnek, döndürülmekte olan ayrı bir karakteri gösterir. Her karakter, 1 saniyelik aralıklarla bağımsız olarak döndürülür.

Screenshot of text effect rotating text

Flow belgeleri kullanma

WPF, ortak kullanıcı arabirimi denetimlerine ek olarak metin sunumu için bir düzen denetimi sağlar — FlowDocument öğesi. Öğesi FlowDocument ile birlikte, DocumentViewer farklı düzen gereksinimlerine sahip büyük miktarda metin için bir denetim sağlar. Düzen denetimleri, Typography DIĞER UI denetimlerinin, nesne ve yazı tipi ile ilgili özellikler aracılığıyla Gelişmiş tipografi erişimi sağlar.

Aşağıdaki örnek, içinde barındırılan, FlowDocumentReader arama, gezinme, sayfalandırma ve içerik ölçekleme desteği sağlayan metin içeriğini gösterir.

Screenshot that shows OpenType fonts.

Daha fazla bilgi için bkz. WPF Içindeki belgeler.

Hafif metin çizme

Nesnenin yöntemini kullanarak doğrudan WPF nesnelerine metin çizebilirsiniz DrawTextDrawingContext . Bu yöntemi kullanmak için bir FormattedText nesnesi oluşturun. Bu nesne, metin içindeki her karakterin tek tek biçimlendirilebileceği çok satırlı metin çizmenizi sağlar. nesnesinin işlevselliği, FormattedText Windows apı 'sindeki DrawText bayraklarının işlevlerinin çoğunu içerir. Ayrıca, nesnesi, FormattedText Metin sınırlarını aştığında üç nokta da gösterildiği üç nokta desteği gibi işlevler içerir. Aşağıdaki örnek, ikinci ve üçüncü sözcüklere doğrusal bir gradyan dahil olmak üzere birkaç biçim uygulanmış olan metni gösterir.

Text displayed using FormattedText object

Biçimlendirilen metni Geometry nesnelerine dönüştürebilirsiniz, böylece görsel açıdan ilgi çekici metin türlerini oluşturabilirsiniz. Ö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ülmüş metnin vuruş, dolgusu ve vurgulanmasını değiştirerek ilginç görsel etkiler oluşturmanın birkaç yolu 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

Nesnesi hakkında daha fazla bilgi için FormattedText bkz. FormattedText.

Gelişmiş Metin Biçimlendirme

WPF, metin API 'lerinin en gelişmiş düzeyinde, TextFormatter nesne ve ad alanındaki diğer türler kullanılarak özel metin düzeni oluşturma olanağı sunar System.Windows.Media.TextFormatting . TextFormatterVe ilişkili sınıflar, kendi karakter formatları, paragraf stilleri, satır sonu kuralları ve uluslararası metin için diğer düzen özellikleri tanımlarını destekleyen özel metin düzeni uygulamanıza olanak tanır. WPF metin düzeni desteğinin varsayılan uygulamasını geçersiz kılmak isteyebileceğiniz çok az durum vardır. Ancak, bir metin düzenlemesi denetimi veya uygulaması oluşturuyorsanız, varsayılan WPF uygulamasından farklı bir uygulama gerekebilir.

Geleneksel bir metin API 'sinin aksine, bir TextFormatter dizi geri arama yöntemi aracılığıyla metin düzeni istemcisiyle etkileşime girer. İstemcinin bu yöntemleri sınıfının bir uygulamasında sağlamalarını TextSource gerektirir. Aşağıdaki diyagram, istemci uygulaması ile arasındaki metin düzeni etkileşimini TextFormatter gösterir.

Diagram of text layout client and TextFormatter

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

Ayrıca bkz.