WPF, helyettesítés és beágyazása betűtípusok

font Mapping

Ha megad egy font körültekintően megközelíteni a választott betűtípus, amelynek jelen kell lennie a felhasználó számítógépén. WPF segítségével több ebben a kérdésben, mivel az alternatív rendszer font. Ez lehetővé teszi, hogy meghatározza ingatlan FontFamily betűtípusok listája, vesszővel elválasztva. Ezután WPF megpróbálja válasszon egy betűtípust a megadott listából.

A következő példa megpróbálja használni a betűtípus Műszaki dőlt és távollétében kerül kiválasztásra üzemszüneti - Comic Sans MS vagy Arial:

Ha hirtelen a betűtípus család tartalmaz egy vesszőt a neve, meg kell írni kétszer.

Egyébként meg lehet, hogy kap egy listát az összes telepített betűtípusok a jelenlegi számítógépen - egy statikus gyűjtemény SystemFontFamilies osztály System.Windows.Media.Fonts. Az alábbiakban egy példát, amelyben ez a gyűjtemény használt fontokat a listában:

FontFamily objektum lehetővé teszi, hogy megismerjék és egyéb részletek, mint például a sortávolság és a kapcsolódó headset.

Az egyik az összetevők, amelyek nem egy WPF egy párbeszédablak, hogy kiválassza a betűtípust. Csoport WPF javasolt szöveg két fejlesztő vonzóbbá eszközök kiválasztásához font: nélküli változat kód, amely az adatok kötelező és bonyolultabb változata, amely támogatja az opcionális tervezési lehetőségeket talált néhány betűtípus OrenType.

beágyazás betűtípusok

Egy másik lehetőség, ha dolgozik, szokatlan betűtípusok beilleszkedésüket az alkalmazást. Ezután az alkalmazás soha nem lesz probléma megtalálni a kívánt betűtípust.

Az integrációs folyamat nagyon egyszerű. Először meg kell adni az alkalmazás betűtípus fájlt (általában kiterjesztésű .ttf), és állítsa a paraméter értékét Build Action Resource. (Ehhez a Visual Studio, jelölje ki a font file a Solution Explorerben és a változó a Build Action érték a Properties ablakban (Properties).)

Ezután, a betűtípus, meg kell adni, mielőtt a család nevét karaktersorozat ./#:

WPF, helyettesítés és beágyazása betűtípusok

WPF értelmezi szimbólumok ./ jeleként az aktuális mappában. Ahhoz, hogy megértsük, mit jelent ez, meg kell foglalkozni a XAML csomagolási rendszer.

Akkor fuss stand-alone (úgynevezett független) XAML-fájlokat közvetlenül a böngészőben fordítása nélkül őket. Az egyetlen feltétel, hogy a XAML-fájl nem használható a kód mögött fájlt. Aktuális mappa megengedett, így WPF megkeresi font fájlokat, amelyek ugyanabban a könyvtárban, mint a XAML-fájlt, és hozzáférhetővé teszi a kérelmet.

Ez URI kapható több helyen, többek között FontFamily.BaseUri tulajdon. WPF használja ezt az URI bázisként helyen keresésekor betűtípusokat. Így, amikor használjuk a lefordított szintaxis ./ WPF-alkalmazás keresendő betűtípusok vannak beépítve erőforrás összeállított XAML.

Miután ./ karaktereket, akkor egyszerűen adja meg a fájl nevét, de az általában a számjel (#) és a betűtípus nevét család. A fenti példában egy beágyazott font nevű Vivaldi.

A beágyazás betűtípusok saját furcsa szokásai. Meg kell határozni a pontos betűtípus család nevét, és válassza ki a megfelelő intézkedés a szerelvény a betűtípus fájlt. Betűtípusok beágyazása kapcsolatos kérdéseket is érint engedélyezés. Sajnos, a legtöbb betűtípus gyártók számára megengedett, hogy juttasson el betűtípusok dokumentumok (például PDF-fájlok), de nem az alkalmazás (pl WPF összeszerelés), még akkor is, ha a WPF beágyazott font közvetlenül nem hozzáférhető a végfelhasználó. WPF nem próbál valahogy engedélyezett betűtípusok, és mégis, mielőtt osztja ki a betűtípust, ügyeljen arra, hogy ne sértse az engedély feltételeit.

Különösen, nézd meg a beágyazás fül (beágyazás), hogy a behelyezés a szöveg megengedett. Betűtípusok jelzett Telepített beágyazása megengedett (megengedett a telepített behelyezés), alkalmas a WPF-alkalmazások és betűtípusok jelzett szerkeszthető beágyazása megengedett (megengedett szerkeszthető beágyazás) nem lehet alkalmas erre a célra. További információt az engedély bármilyen betűtípust lehet beszerezni a kapcsolatot a font.

szövegformázási mód

Rajz Szöveg WPF egy kicsit eltér a rajzot a régi GDI-alapú alkalmazások. Ez elsősorban annak köszönhető, hogy a különbség a WPF alkalmazás független a megjelenítő eszköz a rendszer, de ott is jelentős javulást, amelyek lehetővé teszik a szöveget, hogy vizsgálja meg és egyre világosabb, az LCD monitoron.

A szöveg azonban rendering WPF egy ismert hibája. Amikor a kis méret a betűtípusa elmosódik, és tartalmazza a nemkívánatos melléktermékek (például egy színes halogén szélei körül a karakter). Az ilyen problémák nem merülnek fel, ha a kimenetre szöveget GDI, mert Ez az interfész használ néhány trükk célja, hogy javítsa a világosság a kis szöveget.

Például GDI tudja változtatni az alakját apró betűkkel, shift a helyzetüket, és igazítsa a határait pixel. Ezek az intézkedések eredményeként a veszteség bizonyos funkciókat a headset, de növeli az olvashatóságot a képernyőn, amikor a kijelzőn a kis szöveget.

És hogyan lehet megoldani a problémát megjelenítő kis szöveget WPF? Sokkal jobb, hogy csak növeli a méretét (96 dpi monitor ez a hiba eltűnik, ha a szöveg mérete körülbelül 15 egység független az eszköz), vagy egy monitor, egy nagy értékű dpi, ami elég engedély tiszta képet a kívánt méretű szöveget. De mivel ezek a lehetőségek gyakran nem alkalmazható a gyakorlatban WPF 4 bevezetett egy új funkció: a szelektív használata szöveges megjelenítését GDI stílusban.

Ahhoz, hogy a teljes szöveg megjelenítéséhez GDI stílust felvenni az elem jelenik meg a szövegben (például a TextBlock vagy Label), amelyhez TextOptions.TextFormattingMode ingatlan értékének megváltoztatása a Display (standard Ideális).

Vegye figyelembe, hogy TextFormattingMode ingatlan alkalmas oldat csak kis font. Ha alkalmazza azt a nagy (több mint 15 pont), a szöveg nem lesz olyan tiszta, a rések között a karakterek - nem olyan sima, és a karakterek maguk nem fog nagyon ügyes.

És ha te is használja a transzformáció, amely forog, mérleg mérete vagy még valahogy megváltoztatja a szöveg megjelenését, akkor mindig használja a szabványos megjelenítési mód a szöveg WPF. Valóban, a stílus GDI optimalizálás szövegre alkalmazott előtt ilyen átalakításokat. És elvégzése után az átalakítás eredményeként már nem lesz igazítva határait pixel, és a szöveg jelenik meg homályos.