Typografi i WPF
Det här avsnittet beskriver de viktigaste typografiska funktionerna i WPF. Dessa funktioner omfattar förbättrad kvalitet och prestanda för textrendering, stöd för OpenType-typografi, förbättrad internationell text, förbättrat teckensnittsstöd och nya API:er (Text Application Programming Interfaces).
Förbättrad kvalitet och prestanda för text
Text i WPF återges med hjälp av Microsoft ClearType, vilket förbättrar tydligheten och läsbarheten. ClearType är en programvaruteknik utvecklad av Microsoft som förbättrar läsbarheten för text på befintliga LCD-skärmar (Liquid Crystal Displays), till exempel bärbara skärmar, Pocket PC-skärmar och plattskärmar. ClearType använder underskärmsupplösning som gör att text kan visas med större exakthet till dess sanna form genom att justera tecken på en bråkdel av en pixel. Den extra upplösningen ökar skärpan hos de små detaljerna i textvisningen, vilket gör det mycket lättare att läsa under långa perioder. En annan förbättring av ClearType i WPF är anti-aliasing i y-riktning, vilket jämnar ut topparna och bottnarna på grunda kurvor i texttecken. Mer information om ClearType-funktioner finns i Översikt över ClearType.
Text med ClearType-antialiasing i y-led
Hela textrenderingspipelinen kan maskinvaruaccelereras i WPF förutsatt att datorn uppfyller den lägsta maskinvarunivå som krävs. Återgivning som inte kan utföras med maskinvara återgår till programvarurendering. Maskinvaruacceleration påverkar alla faser i textrenderingspipelinen – från lagring av enskilda glyfer, sammansättning av glyfer i glyfkörningar, tillämpning av effekter, till att tillämpa ClearType-blandningsalgoritmen på de slutliga utdata som visas. Mer information om maskinvaruacceleration finns i grafikrenderingsnivåer.
Dessutom drar animerad text, oavsett om den är av tecken eller glyf, full nytta av grafikmaskinvarans kapacitet som aktiveras av WPF. Detta resulterar i en jämn textanimering.
Rich Typography
OpenType-teckensnittsformatet är ett tillägg till TrueType-teckensnittsformatet®. OpenType-teckensnittsformatet utvecklades gemensamt av Microsoft och Adobe och innehåller ett omfattande utbud av avancerade typografiska funktioner. Objektet Typography exponerar många av de avancerade funktionerna i OpenType-teckensnitt, till exempel stilistiska alternativ och swashes. Windows SDK innehåller en uppsättning OpenType-exempelteckensnitt som är utformade med omfattande funktioner, till exempel teckensnitten Pericles och Pescadero. Mer information finns i Exempel på OpenType-teckensnittspaket.
Teckensnittet Pericles OpenType innehåller ytterligare glyfer som ger stilistiska alternativ till standarduppsättningen med glyfer. Följande text visar stilistiska alternativa tecken.
Swashes är dekorativa glyfer som använder utarbetad utsmyckning som ofta förknippas med kalligrafi. Följande text visar standard- och swash-glyfer för Pescadero-teckensnittet.
Mer information om OpenType-funktioner finns i OpenType-teckensnittsfunktioner.
Utökat stöd för internationell text
WPF ger förbättrat stöd för internationell text genom att tillhandahålla följande funktioner:
Automatiskt radavstånd i alla skrivsystem med anpassningsbar mätning.
Brett stöd för internationell text. För mer information, se Globalisering för WPF.
Språkstyrd radbrytning, avstavning och motivering.
Utökat teckensnittsstöd
WPF ger förbättrat teckensnittsstöd genom att tillhandahålla följande funktioner:
Unicode för all text. Teckensnittsbeteende och val kräver inte längre teckenuppsättning eller kodsida.
Teckensnittsbeteende oberoende av globala inställningar, såsom systemets lokala inställningar.
Avgränsa FontWeight, FontStretchoch FontStyle typer för att definiera en FontFamily. Detta ger större flexibilitet än i Win32-programmering, där booleska kombinationer av kursiv och fet stil används för att definiera en teckensnittsfamilj.
Skrivriktningen (vågrät kontra lodrät) hanteras oberoende av teckensnittsnamnet.
Teckensnittslänkning och teckensnittsåterställning i en bärbar XML-fil med hjälp av sammansatta teckensnittsteknik. Sammansatta teckensnitt gör det möjligt att skapa flerspråkiga teckensnitt i hela intervallet. Sammansatta teckensnitt ger också en mekanism som undviker att visa saknade glyfer. Mer information finns i kommentarerna i klassen FontFamily.
Internationella teckensnitt som skapats från sammansatta teckensnitt med hjälp av en grupp teckensnitt med ett enda språk. Detta sparar på resurskostnader när du utvecklar teckensnitt för flera språk.
Sammansatta teckensnitt inbäddade i ett dokument, vilket ger dokumentportabilitet. Mer information finns i kommentarerna i klassen FontFamily.
Nya textprogrammeringsgränssnitt (API:er)
WPF innehåller flera text-API:er som utvecklare kan använda när de inkluderar text i sina program. Dessa API:er är grupperade i tre kategorier:
Layout och användargränssnitt. Vanliga textkontroller för det grafiska användargränssnittet (GUI).
Lightweight textåtergivning. Gör att du kan rita text direkt till objekt.
Avancerad textformatering. Gör att du kan implementera en anpassad textmotor.
Layout och användargränssnitt
På den högsta funktionalitetsnivån tillhandahåller text-API:erna vanliga användargränssnittskontroller som Label, TextBlockoch TextBox. Dessa kontroller tillhandahåller grundläggande gränssnittselement i ett program och erbjuder ett enkelt sätt att presentera och interagera med text. Kontroller som RichTextBox och PasswordBox möjliggöra mer avancerad eller specialiserad texthantering. Och klasser som TextRange, TextSelectionoch TextPointer aktivera användbar textmanipulering. Dessa gränssnittskontroller innehåller egenskaper som FontFamily, FontSizeoch FontStyle, som gör att du kan styra teckensnittet som används för att återge texten.
Använda bitmappseffekter, transformeringar och texteffekter
MED WPF kan du skapa visuellt intressanta användningar av text genom att använda funktioner som bitmappseffekter, transformeringar och texteffekter. I följande exempel visas en typisk typ av en skuggeffekt som tillämpas på text.
I följande exempel visas en skuggeffekt och brus som tillämpas på text.
I följande exempel visas en yttre ljusskenseffekt som tillämpas på text.
I följande exempel visas en blureffekt applicerad på text.
I följande exempel visas den andra textraden skalad med 150% längs x-axeln och den tredje textraden skalas med 150% längs y-axeln.
I följande exempel visas text som är skev längs x-axeln.
Ett TextEffect objekt är ett hjälpobjekt som gör att du kan behandla text som en eller flera grupper med tecken i en textsträng. I följande exempel visas ett enskilt tecken som roteras. Varje tecken roteras oberoende av varandra med 1 sekunds intervall.
Använda flödesdokument
Utöver de vanliga användargränssnittskontrollerna erbjuder WPF en layoutkontroll för textpresentation – FlowDocument-elementet. Elementet FlowDocument tillsammans med elementet DocumentViewer ger en kontroll för stora mängder text med varierande layoutkrav. Layoutkontroller ger åtkomst till avancerad typografi via Typography-objektet och teckensnittsrelaterade egenskaper för andra användargränssnittskontroller.
I följande exempel visas textinnehåll som finns i en FlowDocumentReader, som ger stöd för sökning, navigering, sidnumrering och innehållsskalning.
Mer information finns i Dokument i WPF.
Lätt textritning
Du kan rita text direkt till WPF-objekt med hjälp av DrawText-metoden för DrawingContext-objektet. Om du vill använda den här metoden skapar du ett FormattedText objekt. Med det här objektet kan du rita text med flera rader, där varje tecken i texten kan formateras individuellt. Funktionerna i FormattedText-objektet innehåller mycket av funktionerna i DrawText-flaggorna i Windows-API:et. Dessutom innehåller FormattedText-objektet funktioner som ellipsstöd, där en ellips visas när texten överskrider sina gränser. I följande exempel visas text som har flera format, inklusive en linjär toning på det andra och tredje ordet.
Du kan konvertera formaterad text till Geometry objekt, så att du kan skapa andra typer av visuellt intressant text. Du kan till exempel skapa ett Geometry objekt baserat på konturen av en textsträng.
I följande exempel visas flera sätt att skapa intressanta visuella effekter genom att ändra linje, fyllning och markering av konverterad text.
Mer information om objektet FormattedText finns i Rita formaterad text.
Avancerad textformatering
På den mest avancerade nivån i text-API:erna ger WPF dig möjlighet att skapa anpassad textlayout med hjälp av TextFormatter-objektet och andra typer i System.Windows.Media.TextFormatting namnområdet. Med TextFormatter och associerade klasser kan du implementera anpassad textlayout som stöder din egen definition av teckenformat, styckeformat, radbrytningsregler och andra layoutfunktioner för internationell text. Det finns mycket få fall där du vill åsidosätta standardimplementeringen av WPF-textlayoutens stöd. Men om du skapade en textredigeringskontroll eller ett program kan du behöva en annan implementering än wpf-standardimplementeringen.
Till skillnad från ett traditionellt text-API interagerar TextFormatter med en textlayoutklient via en uppsättning återanropsmetoder. Det kräver att klienten tillhandahåller dessa metoder i en implementering av klassen TextSource. Följande diagram illustrerar interaktionen mellan textlayouten mellan klientprogrammet och TextFormatter.
Mer information om hur du skapar anpassad textlayout finns i Avancerad textformatering.
Se även
.NET Desktop feedback