Dela via


Dokument i WPF

Windows Presentation Foundation (WPF) erbjuder ett brett utbud av dokumentfunktioner som gör det möjligt att skapa innehåll med hög återgivning som är utformat för att vara enklare att komma åt och läsa än i tidigare generationer av Windows. Utöver förbättrade funktioner och kvalitet tillhandahåller WPF även integrerade tjänster för dokumentvisning, paketering och säkerhet. Det här avsnittet innehåller en introduktion till WPF-dokumenttyper och dokumentpaketering.

Typer av dokument

WPF delar upp dokument i två breda kategorier baserat på deras avsedda användning; dessa dokumentkategorier kallas "fasta dokument" och "flödesdokument".

Fasta dokument är avsedda för program som kräver en exakt "vad du ser är vad du får" (WYSIWYG) presentation, oberoende av den bildskärm eller skrivarmaskinvara som används. Vanliga användningsområden för fasta dokument är skrivbordspublicering, ordbearbetning och formulärlayout, där det är viktigt att följa den ursprungliga siddesignen. Som en del av layouten upprätthåller ett fast dokument den exakta positionella placeringen av innehållselement oberoende av visnings- eller utskriftsenheten som används. Till exempel visas en fast dokumentsida som visas på 96 dpi-skärmen exakt samma när den matas ut till en 600 dpi-laserskrivare som när den matas ut till en fototypssättare med 4 800 dpi. Sidlayouten förblir densamma i alla fall, medan dokumentkvaliteten maximeras till varje enhets funktioner.

Som jämförelse är flödesdokument utformade för att optimera visning och läsbarhet och används bäst när lätt att läsa är det primära scenariot för dokumentförbrukning. Istället för att vara inställda på en fördefinierad layout, anpassar flödande dokument dynamiskt sitt innehåll baserat på körningsvariabler som fönsterstorlek, enhetsupplösning och valfria användarinställningar. En webbsida är ett enkelt exempel på ett flödesdokument där sidinnehållet formateras dynamiskt för att passa det aktuella fönstret. Flödesdokument optimerar visnings- och läsupplevelsen för användaren baserat på körningsmiljön. Till exempel formateras samma flödesdokument dynamiskt om för optimal läsbarhet på antingen högupplöst 19-tums skärm eller en liten 2x3-tums PDA-skärm. Dessutom har flödesdokument ett antal inbyggda funktioner som sökning, visningslägen som optimerar läsbarheten och möjligheten att ändra teckensnittens storlek och utseende. Se Översikt över flödesdokument för illustrationer, exempel och detaljerad information om flödesdokument.

Dokumentkontroller och textlayout

.NET Framework innehåller en uppsättning fördefinierade kontroller som förenklar användningen av fasta dokument, flödesdokument och allmän text i ditt program. Visningen av fast dokumentinnehåll stöds med hjälp av DocumentViewer kontrollen. Visning av flödesdokumentinnehåll stöds av tre olika kontroller: FlowDocumentReader, FlowDocumentPageVieweroch FlowDocumentScrollViewer som mappar till olika användarscenarier (se avsnitten nedan). Andra WPF-kontroller ger en förenklad layout för att stödja allmän textanvändning (se Text i användargränssnittet nedan).

Fast Dokumentkontroll: Dokumentvisare

Kontrollen DocumentViewer är utformad för att visa FixedDocument innehåll. Kontrollen DocumentViewer ger ett intuitivt användargränssnitt som ger inbyggt stöd för vanliga åtgärder, inklusive utskriftsutdata, kopiera till Urklipp, zoom och textsökningsfunktioner. Kontrollen ger åtkomst till sidor med innehåll via en välbekant rullningsmekanism. Liksom alla WPF-kontroller stöder DocumentViewer fullständig eller partiell restyling, vilket gör att kontrollen kan integreras visuellt i praktiskt taget alla program eller miljöer.

DocumentViewer är utformad för att visa innehåll på ett skrivskyddat sätt. redigering eller ändring av innehåll är inte tillgängligt och stöds inte.

Kontroller för flödesdokument

Anmärkning

Mer detaljerad information om flödesdokumentfunktioner och hur du skapar dem finns i Översikt över flödesdokument.

Visning av flödesdokumentinnehåll stöds av tre kontroller: FlowDocumentReader, FlowDocumentPageVieweroch FlowDocumentScrollViewer.

Flowdokumentläsare

FlowDocumentReader innehåller funktioner som gör det möjligt för användaren att dynamiskt välja mellan olika visningslägen, inklusive ett visningsläge med en sida (sida i taget), ett visningsläge med två sidor i taget (bokläsningsformat) och ett kontinuerligt rullningsläge (bottenlöst). Mer information om dessa visningslägen finns i FlowDocumentReaderViewingMode. Om du inte behöver möjligheten att dynamiskt växla mellan olika visningslägen, tillhandahåller FlowDocumentPageViewer och FlowDocumentScrollViewer lättare innehållsvisare som är fasta i ett visst visningsläge.

FlowDocumentPageViewer och FlowDocumentScrollViewer

FlowDocumentPageViewer visar innehåll i visningsläge sida vid sida, medan FlowDocumentScrollViewer visar innehåll i kontinuerligt rullningsläge. Både FlowDocumentPageViewer och FlowDocumentScrollViewer är fasta i ett visst visningsläge. Jämför med FlowDocumentReader, som innehåller funktioner som gör det möjligt för användaren att dynamiskt välja mellan olika visningslägen (enligt FlowDocumentReaderViewingMode uppräkning), på bekostnad av att vara mer resursintensiv än FlowDocumentPageViewer eller FlowDocumentScrollViewer.

Som standard visas alltid en lodrät rullningslist och en vågrät rullningslist visas om det behövs. Standardgränssnittet för FlowDocumentScrollViewer innehåller inte något verktygsfält. Egenskapen IsToolBarVisible kan dock användas för att aktivera ett inbyggt verktygsfält.

Text i användargränssnittet

Förutom att lägga till text i dokument kan text uppenbarligen användas i programgränssnittet, till exempel formulär. WPF innehåller flera kontroller för att rita text på skärmen. Varje kontroll är riktad mot ett annat scenario och har en egen lista över funktioner och begränsningar. I allmänhet bör TextBlock-elementet användas när begränsat textstöd krävs, till exempel en kort mening i ett användargränssnitt (UI). Label kan användas när minimalt textstöd krävs. Mer information finns i Översikt över TextBlock.

Dokumentpaketering

System.IO.Packaging API:erna är ett effektivt sätt att organisera programdata, dokumentinnehåll och relaterade resurser i en enda container som är enkel att komma åt, portabel och lätt att distribuera. En ZIP-fil är ett exempel på en Package typ som kan innehålla flera objekt som en enda enhet. Paketerings-API:erna tillhandahåller en standardimplementering ZipPackage som utformats med en open packaging conventions-standard med XML- och ZIP-filarkitektur. WPF-paketerings-API:erna gör det enkelt att skapa paket och lagra och komma åt objekt i dem. Ett objekt som lagras i en Package kallas för en PackagePart ("del"). Paket kan också innehålla signerade digitala certifikat som kan användas för att identifiera en dels upphovsman och för att verifiera att innehållet i ett paket inte har ändrats. Paket innehåller också en PackageRelationship funktion som gör att ytterligare information kan läggas till i ett paket eller associeras med specifika delar utan att faktiskt ändra innehållet i befintliga delar. Pakettjänster stöder även Microsoft Windows Rights Management (RM).

WPF-paketarkitekturen utgör grunden för ett antal viktiga tekniker:

  • XPS-dokument som överensstämmer med XML-pappersspecifikationen (XPS).

  • Microsoft Office "12" öppnar XML-formatdokument (.docx).

  • Anpassade lagringsformat för din egen programdesign.

Baserat på paketerings-API:erna är en XpsDocument särskilt utformad för att lagra WPF-dokument med fast innehåll. En XpsDocument är ett fristående dokument som kan öppnas i ett visningsprogram, visas i en DocumentViewer kontroll, dirigeras till en utskriftspool eller matas ut direkt till en XPS-kompatibel skrivare.

Följande avsnitt innehåller ytterligare information om api:erna Package och XpsDocument som tillhandahålls med WPF.

Paketkomponenter

WPF-paketerings-API:erna tillåter att programdata och dokument ordnas i en enda bärbar enhet. En ZIP-fil är en av de vanligaste typerna av paket och är standardpakettypen som medföljer WPF. Package är en abstrakt klass från vilken ZipPackage implementeras med en öppen standard för XML- och ZIP-filarkitektur. Metoden Open använder ZipPackage för att skapa och använda ZIP-filer som standard. Ett paket kan innehålla tre grundläggande typer av objekt:

Objekt Beskrivning
PackagePart Programinnehåll, data, dokument och resursfiler.
PackageDigitalSignature [X.509 Certificate] för identifiering, autentisering och validering.
PackageRelationship Information om paketet eller en specifik del har lagts till.

Paketdelar

En PackagePart ("del") är en abstrakt klass som refererar till ett objekt som lagras i en Package. I en ZIP-fil motsvarar paketdelarna de enskilda filer som lagras i ZIP-filen. ZipPackagePart tillhandahåller standardimplementeringen för serialiserbara objekt som lagras i en ZipPackage. Precis som ett filsystem lagras delar som ingår i paketet i hierarkisk katalog eller i "mappformat"-organisationen. Med wpf-paketerings-API:er kan program skriva, lagra och läsa flera PackagePart objekt med hjälp av en enda ZIP-filcontainer.

PackageDigitalSignatures

För säkerhet kan en PackageDigitalSignature ("digital signatur") associeras med delar i ett paket. A PackageDigitalSignature innehåller en [509] som innehåller två funktioner:

  1. Identifierar och autentiserar delens upphovsman.

  2. Verifierar att delen inte har ändrats.

Den digitala signaturen förhindrar inte att en del ändras, men en verifieringskontroll mot den digitala signaturen misslyckas om delen ändras på något sätt. Programmet kan sedan vidta lämpliga åtgärder, till exempel blockera öppnandet av delen eller meddela användaren att delen har ändrats och inte är säker.

Paketrelationer

En PackageRelationship ("relation") ger en mekanism för att associera ytterligare information med paketet eller en del i paketet. En relation är en funktion på paketnivå som kan associera ytterligare information med en delkomponent utan att ändra innehållet i själva delen. Att infoga nya data direkt i delinnehållet i är vanligtvis inte praktiskt i många fall:

  • Den faktiska typen av delen och dess innehållsschema är inte känd.

  • Även om det är känt kanske innehållsschemat inte tillhandahåller något sätt att lägga till ny information.

  • Delen kan vara digitalt signerad eller krypterad, vilket utesluter alla ändringar.

Paketrelationer ger ett identifieringsbart sätt att lägga till och associera ytterligare information med enskilda delar eller med hela paketet. Paketrelationer används för två primära funktioner:

  1. Definiera beroenderelationer från en del till en annan del.

  2. Definiera informationsrelationer som lägger till anteckningar eller andra data som är relaterade till delen.

A PackageRelationship ger ett snabbt, identifierbart sätt att definiera beroenden och lägga till annan information som är associerad med en del av paketet eller paketet som helhet.

Beroenderelationer

Beroenderelationer används för att beskriva beroenden som en del gör till andra delar. Ett paket kan till exempel innehålla en HTML-del som innehåller en eller flera <img-bildtaggar> . Avbildningstaggar refererar till bilder som finns antingen som andra delar som är interna för paketet eller externa för paketet (till exempel tillgängliga via Internet). Att skapa en PackageRelationship associerad med HTML-fil gör det snabbt och enkelt att identifiera och komma åt de beroende resurserna. Ett webbläsar- eller visningsprogram kan direkt komma åt delrelationerna och omedelbart börja montera de beroende resurserna utan att känna till schemat eller parsa dokumentet.

Informationsrelationer

På samma sätt som en anteckning kan en PackageRelationship också användas för att lagra andra typer av information som ska associeras med en del utan att behöva ändra själva delinnehållet.

XPS-dokument

DOKUMENTET XML Paper Specification (XPS) är ett paket som innehåller ett eller flera fasta dokument tillsammans med alla resurser och all information som krävs för återgivning. XPS är också det inbyggda filformatet för utskriftspoolen i Windows Vista. En XpsDocument lagras i zip-standarddatauppsättningen och kan innehålla en kombination av XML-komponenter och binära komponenter, till exempel bild- och teckensnittsfiler. PackageRelationships används för att definiera beroenden mellan innehållet och de resurser som krävs för att återge dokumentet fullständigt. Designen XpsDocument ger en enkel dokumentlösning med hög återgivning som stöder flera användningsområden:

  • Läsa, skriva och lagra innehåll och resurser med fast dokument som en enda, bärbar och lättfördelad fil.

  • Visar dokument med XPS Viewer-programmet.

  • Utskrift av dokument i det inbyggda utskriftspoolformatet för Windows Vista.

  • Dirigera dokument direkt till en XPS-kompatibel skrivare.

Se även