Typografie v rozhraní WPF

Toto téma představuje hlavní typografické funkce WPF. Mezi tyto funkce patří vylepšená kvalita a výkon vykreslování textu, podpora typografie OpenType, rozšířená mezinárodní textová podpora, vylepšená podpora písem a nová programovací rozhraní textových aplikací (API).

Vylepšená kvalita a výkon textu

Text ve WPF se vykresluje pomocí microsoft ClearType, což zlepšuje srozumitelnost a čitelnost textu. ClearType je softwarová technologie vyvinutá Microsoftem, která zlepšuje čitelnost textu na stávajících LCD (Liquid Crystal Displays), jako jsou obrazovky notebooků, zařízení Pocket PC obrazovky a ploché panely. ClearType používá vykreslování dílčích pixelů, které umožňuje zobrazení textu s větší věrností jeho skutečnému obrazci zarovnáním znaků na zlomkovou část pixelu. Vyšší rozlišení zvyšuje ostrost malých podrobností v zobrazení textu, což usnadňuje čtení po delší dobu. Dalším vylepšením ClearType ve WPF je anti-aliasing ve směru y, který vyhladí horní a dolní části mělkých křivek v textových znacích. Další podrobnosti o funkcích ClearType najdete v tématu Přehled typu ClearType.

Text with ClearType y-direction anti-aliasing
Text s antialiasingem typu ClearType y

Za předpokladu, že váš počítač splňuje minimální požadovanou úroveň hardwaru, může být celý kanál vykreslování textu v WPF akcelerovaný hardwarem. Vykreslování, které nelze provést pomocí hardwaru, se vrátí do softwarového vykreslování. Hardwarová akcelerace ovlivňuje všechny fáze kanálu vykreslování textu – od ukládání jednotlivých glyfů, kompozitování glyfů do spuštění glyfů, použití efektů, použití efektů, použití algoritmu prolnutí ClearType na konečný zobrazený výstup. Další informace o hardwarové akceleraci naleznete v tématu Úrovně vykreslování grafiky.

Diagram of the text rendering pipeline

Animovaný text, ať už podle znaku nebo glyf, navíc plně využívá možnosti grafického hardwaru povolené wpF. Výsledkem je animace hladkého textu.

Bohatá typografie

Formát písma OpenType je rozšířením formátu písma TrueType®. Formát písma OpenType byl vyvinut společně společností Microsoft a Adobe a poskytuje bohatou škálu pokročilých typografických funkcí. Objekt Typography zveřejňuje mnoho pokročilých funkcí písem OpenType, jako jsou stylistické alternativy a promývání. Sada Windows SDK poskytuje sadu ukázkových písem OpenType, která jsou navržena s bohatými funkcemi, jako jsou písma Pericles a Pescadero. Další informace naleznete v tématu Sample OpenType Font Pack.

Písmo Pericles OpenType obsahuje další glyfy, které poskytují stylistické alternativy ke standardní sadě glyfů. Následující text zobrazuje stylistické alternativní glyfy.

Text using OpenType stylistic alternate glyphs

Swashes jsou dekorativní glyfy, které používají propracované ornamenty často spojené s calligrafií. Následující text zobrazuje standardní a vymyté glyfy pro písmo Pescadero.

Text using OpenType standard and swash glyphs

Další podrobnosti o funkcích OpenType najdete v tématu Funkce písma OpenType.

Rozšířená podpora mezinárodního textu

WPF poskytuje vylepšenou mezinárodní podporu textu tím, že poskytuje následující funkce:

  • Automatické řádkování ve všech systémech zápisu pomocí adaptivního měření

  • Široká podpora mezinárodního textu. Další informace naleznete v tématu Globalizace pro WPF.

  • Dělení řádků, dělení slov a odůvodnění na základě jazyka

Vylepšená podpora písem

WPF poskytuje vylepšenou podporu písem tím, že poskytuje následující funkce:

  • Unicode pro veškerý text Chování a výběr písma už nevyžadují znakovou sadu ani znakovou stránku.

  • Chování písma nezávisle na globálním nastavení, jako je národní prostředí systému.

  • Samostatné FontWeight, FontStretcha FontStyle typy pro definování FontFamily. To poskytuje větší flexibilitu než v programování Win32, ve kterém se k definování rodiny písem používají logické kombinace kurzívy a tučného písma.

  • Směr zápisu (vodorovný a svislý) se zpracovává nezávisle na názvu písma.

  • Propojení písem a náhradní písmo v přenosném souboru XML pomocí složených technologií písem Složená písma umožňují stavět celá řada vícejazyčných písem. Složená písma také poskytují mechanismus, který zabraňuje zobrazování chybějících glyfů. Další informace najdete v poznámkách v předmětu FontFamily .

  • Mezinárodní písma vytvořená ze složených písem pomocí skupiny jednojazyčných písem To šetří náklady na prostředky při vývoji písem pro více jazyků.

  • Složená písma vložená do dokumentu a poskytují tak přenositelnost dokumentů. Další informace najdete v poznámkách v předmětu FontFamily .

Nová programovací rozhraní textových aplikací (API)

WPF poskytuje vývojářům několik textových rozhraní API, která můžou použít při zahrnutí textu do svých aplikací. Tato rozhraní API jsou seskupována do tří kategorií:

  • Rozložení a uživatelské rozhraní Běžné textové ovládací prvky pro grafické uživatelské rozhraní (GUI).

  • Jednoduchý textový výkres. Umožňuje nakreslit text přímo na objekty.

  • Rozšířené formátování textu Umožňuje implementovat vlastní textový modul.

Rozložení a uživatelské rozhraní

Na nejvyšší úrovni funkcí poskytují textová rozhraní API společné ovládací prvky uživatelského rozhraní, jako Labeljsou , TextBlocka TextBox. Tyto ovládací prvky poskytují základní prvky uživatelského rozhraní v aplikaci a nabízejí snadný způsob, jak prezentovat text a pracovat s ním. Ovládací prvky, jako RichTextBox jsou a PasswordBox umožňují pokročilejší nebo specializované zpracování textu. A třídy, jako TextRangeje , TextSelectiona TextPointer povolit užitečnou manipulaci s textem. Tyto ovládací prvky uživatelského rozhraní poskytují vlastnosti, například FontFamily, FontSizea FontStyle, které umožňují řídit písmo použité k vykreslení textu.

Použití rastrových efektů, transformací a textových efektů

WPF umožňuje vytvářet vizuálně zajímavé použití textu pomocí funkcí, jako jsou rastrové efekty, transformace a textové efekty. Následující příklad ukazuje typický typ stínového efektu použitého na text.

Text shadow with Softness = 0.25

Následující příklad ukazuje efekt stínu a šum použitý na text.

Text shadow with noise

Následující příklad ukazuje vnější záře efekt použitý na text.

Text shadow using an OuterGlowBitmapEffect

Následující příklad ukazuje efekt rozostření použitý na text.

Text shadow using a BlurBitmapEffect

Následující příklad ukazuje druhý řádek textu škálovaný o 150 % podél osy x a třetí řádek textu škálovaný o 150 % podél osy y.

Text scaled using a ScaleTransform

Následující příklad ukazuje nerovnoměrnou distribuci textu podél osy x.

Text skewed using a SkewTransform

Objekt TextEffect je pomocný objekt, který umožňuje pracovat s textem jako s jednou nebo více skupinami znaků v textovém řetězci. Následující příklad ukazuje otočení jednotlivých znaků. Každý znak se otočí nezávisle v 1sekundových intervalech.

Screenshot of text effect rotating text

Použití dokumentů toku

Kromě běžných ovládacích prvků uživatelského rozhraní nabízí WPF ovládací prvek rozložení pro textovou prezentaci – FlowDocument prvek. Prvek FlowDocument ve spojení s elementem DocumentViewer poskytuje ovládací prvek pro velké množství textu s různými požadavky rozložení. Ovládací prvky rozložení poskytují přístup k pokročilé typografii prostřednictvím Typography vlastností souvisejících s objektem a písmem jiných ovládacích prvků uživatelského rozhraní.

Následující příklad ukazuje textový obsah hostovaný v FlowDocumentReader, který poskytuje podporu vyhledávání, navigace, stránkování a škálování obsahu.

Screenshot that shows OpenType fonts.

Další informace naleznete v tématu Dokumenty ve WPF.

Odlehčená kresba textu

Text můžete nakreslit přímo do objektů WPF pomocí DrawText metody objektu DrawingContext . Chcete-li použít tuto metodu FormattedText , vytvoříte objekt. Tento objekt umožňuje nakreslit víceřádkový text, ve kterém může být každý znak textu individuálně formátován. Funkce objektu FormattedText obsahuje většinu funkcí příznaků DrawText v rozhraní API systému Windows. Kromě toho objekt obsahuje funkce, FormattedText jako je podpora tří teček, ve kterých se zobrazí tři tečky, když text překročí jeho hranice. Následující příklad ukazuje text s několika použitými formáty, včetně lineárního přechodu na druhé a třetí slovo.

Text displayed using FormattedText object

Formátovaný text můžete převést na Geometry objekty, což vám umožní vytvářet další typy vizuálně zajímavého textu. Můžete například vytvořit Geometry objekt založený na obrysu textového řetězce.

Text outline using a linear gradient brush

Následující příklady ilustrují několik způsobů, jak vytvořit zajímavé vizuální efekty úpravou tahu, výplně a zvýraznění převedeného textu.

Text with different colors for fill and stroke

Text with image brush applied to stroke

Text with image brush applied to stroke and highlight

Další informace o objektu FormattedText naleznete v tématu Kreslení formátovaný text.

Upřesněné formátování textu

Na nejpokročilejší úrovni textových rozhraní API nabízí WPF možnost vytvářet vlastní rozložení textu pomocí objektu TextFormatter a dalších typů v System.Windows.Media.TextFormatting oboru názvů. Přidružené TextFormatter třídy umožňují implementovat vlastní rozložení textu, které podporuje vlastní definici formátů znaků, stylů odstavců, pravidel dělení řádků a dalších funkcí rozložení pro mezinárodní text. Existuje velmi málo případů, kdy byste chtěli přepsat výchozí implementaci podpory rozložení textu WPF. Pokud jste ale vytvořili ovládací prvek pro úpravy textu nebo aplikaci, můžete vyžadovat jinou implementaci než výchozí implementace WPF.

Na rozdíl od tradičního textového rozhraní API TextFormatter komunikuje s klientem rozložení textu prostřednictvím sady metod zpětného volání. Vyžaduje, aby klient poskytl tyto metody v implementaci TextSource třídy. Následující diagram znázorňuje interakci rozložení textu mezi klientskou aplikací a TextFormatter.

Diagram of text layout client and TextFormatter

Další podrobnosti o vytváření vlastního rozložení textu najdete v tématu Rozšířené formátování textu.

Viz také