Sdílet prostřednictvím


Dokumenty ve WPF

Windows Presentation Foundation (WPF) nabízí širokou škálu funkcí dokumentu, které umožňují vytvářet vysoce věrný obsah, který je navržený tak, aby byl snadněji přístupný a čitelný než v předchozích generacích Windows. Kromě vylepšených možností a kvality poskytuje WPF také integrované služby pro zobrazení dokumentů, balení a zabezpečení. Toto téma obsahuje úvod k typům dokumentů WPF a balení dokumentů.

Typy dokumentů

WPF rozděluje dokumenty do dvou širokých kategorií na základě jejich zamýšleného použití; tyto kategorie dokumentů se označují jako "pevné dokumenty" a "dokumenty toku".

Pevné dokumenty jsou určené pro aplikace, které vyžadují přesnou prezentaci „co vidíš, to dostaneš“ (WYSIWYG), která je nezávislá na hardwaru použitém displeje nebo tiskárny. Typické použití pro pevné dokumenty zahrnuje publikování na ploše, zpracování textu a rozložení formuláře, kde dodržování původního návrhu stránky je důležité. V rámci svého rozložení udržuje pevný dokument přesné umístění prvků obsahu nezávisle na používaném zobrazovacím nebo tiskovém zařízení. Například pevně formátovaná stránka dokumentu zobrazená na displeji s rozlišením 96 dpi se zobrazí úplně stejně při výstupu z laserové tiskárny s rozlišením 600 dpi i z fotosázby s rozlišením 4800 dpi. Rozložení stránky zůstává ve všech případech stejné, zatímco kvalita dokumentu se maximalizuje na možnosti každého zařízení.

V porovnání jsou tokové dokumenty navržené tak, aby optimalizovaly zobrazování a čitelnost, a nejlépe se využívají tehdy, když je snadná čitelnost primárním scénářem využívání dokumentu. Místo toho, aby byly nastaveny na jedno předdefinované rozložení, dokumenty toku dynamicky upravují a přeformátovávají svůj obsah na základě proměnných za běhu, jako je velikost okna, rozlišení zařízení a volitelné uživatelské předvolby. Webová stránka je jednoduchým příkladem dokumentu toku, ve kterém je obsah stránky dynamicky formátovaný tak, aby odpovídal aktuálnímu okně. Dokumenty toku optimalizují zobrazení a čtení pro uživatele na základě prostředí runtime. Například stejný dokument toku se dynamicky přeformátuje pro zajištění optimální čitelnosti na displeji s vysokým rozlišením 19 palců nebo malé 2x3palcové obrazovce PDA. Kromě toho mají dokumenty toku řadu integrovaných funkcí, včetně vyhledávání, zobrazení režimů, které optimalizují čitelnost a schopnost měnit velikost a vzhled písem. Viz Přehled dokumentu toku pro ilustrace, příklady a podrobné informace o dokumentech toku.

Ovládací prvky dokumentu a rozložení textu

.NET Framework poskytuje sadu předem připravených ovládacích prvků, které zjednodušují používání pevných dokumentů, toků dokumentů a obecného textu v rámci vaší aplikace. Zobrazení pevného obsahu dokumentu se podporuje pomocí DocumentViewer ovládacího prvku. Zobrazení obsahu dokumentu toku je podporováno třemi různými ovládacími prvky: FlowDocumentReader, FlowDocumentPageViewera FlowDocumentScrollViewer které se mapují na různé scénáře uživatelů (viz oddíly níže). Další ovládací prvky WPF poskytují zjednodušené rozložení pro podporu obecných použití textu (viz Text v uživatelském rozhraní níže).

Pevné ovládání dokumentu – DocumentViewer

Ovládací DocumentViewer prvek je navržený tak, aby zobrazoval FixedDocument obsah. Ovládací DocumentViewer prvek poskytuje intuitivní uživatelské rozhraní, které poskytuje integrovanou podporu běžných operací, včetně výstupu tisku, kopírování do schránky, přiblížení a funkcí vyhledávání textu. Ovládací prvek poskytuje přístup k stránkám obsahu prostřednictvím známého mechanismu posouvání. Stejně jako všechny ovládací prvky WPF podporuje DocumentViewer úplné nebo částečné přepracování vzhledu, což umožňuje vizuální integraci ovládacího prvku do prakticky jakékoli aplikace nebo prostředí.

DocumentViewer je navržen tak, aby zobrazoval obsah ve formátu pouze pro čtení; úpravy nebo změny obsahu nejsou k dispozici ani podporovány.

Ovládací prvky dynamického dokumentu

Poznámka:

Podrobnější informace o funkcích dokumentu toku a jejich vytváření najdete v tématu Přehled dokumentu toku.

Zobrazení obsahu dokumentu toku je podporováno třemi ovládacími prvky: FlowDocumentReader, FlowDocumentPageViewera FlowDocumentScrollViewer.

FlowDocumentReader

FlowDocumentReader zahrnuje funkce, které uživateli umožňují dynamicky vybírat mezi různými režimy zobrazení, včetně režimu zobrazení na jedné stránce (jedna stránka najednou), dvoustránkového režimu (formát čtení knihy) a režimu průběžného posouvání (neomezeného) zobrazení. Pro další informace o těchto režimech se podívejte na FlowDocumentReaderViewingMode. Pokud nepotřebujete možnost dynamického přepínání mezi různými režimy zobrazení, FlowDocumentPageViewer a FlowDocumentScrollViewer poskytují méně náročné prohlížeče obsahu, které jsou pevně nastaveny na konkrétní režim zobrazení.

FlowDocumentProhlížečStránky a FlowDocumentProhlížečPosuvníku

FlowDocumentPageViewer zobrazuje obsah v režimu prohlížení po jedné stránce, zatímco FlowDocumentScrollViewer zobrazuje obsah v režimu souvislého rolování. Oba FlowDocumentPageViewer a FlowDocumentScrollViewer jsou nastaveny na konkrétní režim zobrazení. Porovnejte FlowDocumentReader, která zahrnuje funkce, které uživateli umožňují dynamicky vybírat mezi různými režimy zobrazení (jak je poskytuje výčet FlowDocumentReaderViewingMode), za cenu větší náročnosti prostředků než FlowDocumentPageViewer nebo FlowDocumentScrollViewer.

Ve výchozím nastavení se vždy zobrazí svislý posuvník a v případě potřeby se zobrazí vodorovný posuvník. Výchozí uživatelské rozhraní pro FlowDocumentScrollViewer neobsahuje panel nástrojů; vlastnost IsToolBarVisible lze však použít k povolení integrovaného panelu nástrojů.

Text v uživatelském rozhraní

Kromě přidávání textu do dokumentů je možné text samozřejmě použít v uživatelském rozhraní aplikace, jako jsou formuláře. WPF obsahuje více ovládacích prvků pro kreslení textu na obrazovku. Každý ovládací prvek se zaměřuje na jiný scénář a má vlastní seznam funkcí a omezení. Obecně platí, že prvek TextBlock by se měl použít, pokud je vyžadována omezená podpora textu, například stručná věta v uživatelském rozhraní. Label lze použít v případě, že je vyžadována minimální podpora textu. Další informace naleznete v tématu TextBlock – přehled.

Balení dokumentů

Rozhraní System.IO.Packaging API poskytují efektivní způsob uspořádání dat aplikací, obsahu dokumentů a souvisejících prostředků v jednom kontejneru, který je jednoduchý pro přístup, přenositelný a snadno distribuovatelný. Soubor ZIP je příkladem Package typu schopného držet více objektů jako jednu jednotku. Rozhraní API pro balení poskytují výchozí ZipPackage implementaci navrženou pomocí standardu Open Packaging Conventions s architekturou souborů XML a ZIP. Rozhraní API pro vytváření balíčků WPF usnadňují vytváření balíčků a ukládání a přístup k objektům v nich. Objekt uložený v objektu Package se označuje jako PackagePart ("část"). Balíčky mohou také obsahovat podepsané digitální certifikáty, které lze použít k identifikaci původce části a k ověření, že obsah balíčku nebyl změněn. Balíčky obsahují PackageRelationship také funkci, která umožňuje přidání dalších informací do balíčku nebo přidružené ke konkrétním částem bez skutečné úpravy obsahu existujících částí. Služby balíčků také podporují Microsoft Windows Rights Management (RM).

Architektura balíčku WPF slouží jako základ pro řadu klíčových technologií:

  • Dokumenty XPS odpovídající specifikaci XML Paper (XPS).

  • Dokumenty formátu open XML Microsoft Office "12" (.docx).

  • Vlastní formáty úložiště pro vlastní návrh aplikace

Na základě rozhraní API XpsDocument pro balení je speciálně navržená pro ukládání dokumentů s pevným obsahem WPF. A XpsDocument je samostatně obsažený dokument, který lze otevřít v prohlížeči, zobrazit v ovládacím prvku DocumentViewer, směrovat do fondu tisku nebo přímo vypsat na tiskárně kompatibilní se systémem XPS.

Následující části obsahují další informace o PackageXpsDocument rozhraních API, která jsou součástí WPF.

Komponenty balíčků

Rozhraní API pro balení WPF umožňují uspořádání dat aplikací a dokumentů do jedné přenosné jednotky. Soubor ZIP je jedním z nejběžnějších typů balíčků a je výchozím typem balíčku, který je součástí WPF. Package je abstraktní třída, ze které je ZipPackage implementována pomocí architektury otevřeného standardu XML a souborů ZIP. Metoda Open používá ZipPackage k vytváření a používání souborů ZIP ve výchozím nastavení. Balíček může obsahovat tři základní typy položek:

Položka Popis
PackagePart Obsah aplikace, data, dokumenty a soubory zdrojů
PackageDigitalSignature [Certifikát X.509] pro identifikaci, autentizaci a validaci.
PackageRelationship Přidání informací souvisejících s balíčkem nebo konkrétní částí

Části balíčku

A PackagePart ("část") je abstraktní třída, která odkazuje na objekt uložený v objektu Package. V souboru ZIP části balíčku odpovídají jednotlivým souborům uloženým v souboru ZIP. ZipPackagePart poskytuje výchozí implementaci serializovatelných objektů uložených v objektu ZipPackage. Podobně jako systém souborů jsou části obsažené v balíčku uložené v hierarchickém adresáři nebo ve stylu složky. Pomocí rozhraní API pro balení WPF můžou aplikace zapisovat, ukládat a číst více PackagePart objektů pomocí jednoho kontejneru souborů ZIP.

PackageDigitalSignatures

Pro zajištění bezpečnosti lze k částem v balíčku přidružit PackageDigitalSignature (digitální podpis). A PackageDigitalSignature zahrnuje [509], který poskytuje dvě funkce:

  1. Identifikuje a ověřuje původce části.

  2. Ověří, že část nebyla změněna.

Digitální podpis nebrání úpravě části, ale ověření digitálního podpisu selže, pokud je část změněna jakýmkoli způsobem. Aplikace pak může provést odpovídající akci– například zablokovat otevření části nebo upozornit uživatele, že byla tato část upravena a není zabezpečená.

Vztahy balíčku

A PackageRelationship ("relationship") poskytuje mechanismus pro přidružení dalších informací k balíčku nebo části balíčku. Relace je zařízení na úrovni balíčku, které může přidružit další informace k části beze změny skutečného obsahu části. Vkládání nových dat přímo do části obsahu obvykle není v mnoha případech praktické:

  • Skutečný typ části a jeho schématu obsahu není znám.

  • I když je schéma obsahu známé, nemusí poskytovat prostředky pro přidání nových informací.

  • Tato část může být digitálně podepsaná nebo zašifrovaná, což znemožňuje jakékoliv úpravy.

Relace balíčků poskytují zjistitelné prostředky pro přidání a přidružení dalších informací k jednotlivým částem nebo k celému balíčku. Relace balíčků se používají pro dvě primární funkce:

  1. Definování vztahů závislostí z jedné části do jiné.

  2. Definování vztahů mezi informacemi, které přidávají poznámky nebo jiná data týkající se dané části

Poskytuje PackageRelationship rychlé a snadno zjistitelné prostředky pro definování závislostí a přidání dalších doplňkových informací přidružených k částem balíčku nebo balíčku jako celku.

Relace závislostí

Vztahy závislostí se používají k popisu závislostí, které jedna část má vůči jiným částem. Balíček může například obsahovat část HTML, která obsahuje jednu nebo více <značek img> obrázků. Značky obrázků odkazují na obrázky, které jsou umístěné buď jako jiné části interní pro balíček, nebo externí pro balíček (například přístupné přes internet). Vytvoření přidruženého k PackageRelationship souboru HTML umožňuje rychlé a snadné zjišťování a přístup k závislým prostředkům. Aplikace prohlížeče nebo prohlížeče dokumentů může přímo přistupovat k relacím částí a okamžitě zahájit sestavování závislých prostředků bez znalosti schématu nebo parsování dokumentu.

Relace informací

Podobně jako u poznámky nebo poznámky PackageRelationship lze také použít k ukládání jiných typů informací, které se mají přidružit k části, aniž by bylo nutné skutečně upravovat samotný obsah části.

Dokumenty XPS

Dokument XPS (XML Paper Specification) je balíček, který obsahuje jeden nebo více pevných dokumentů spolu se všemi prostředky a informacemi potřebnými k vykreslování. XPS je také nativní formát tiskového spool systému Windows Vista. Soubor XpsDocument je uložený ve standardní datové sadě ZIP a může obsahovat kombinaci XML a binárních komponent, jako jsou soubory obrázků a písem. PackageRelationships slouží k definování závislostí mezi obsahem a prostředky potřebnými k úplnému vykreslení dokumentu. Návrh XpsDocument poskytuje jedno vysoce věrné řešení dokumentů, které podporuje více použití:

  • Čtení, psaní a ukládání obsahu a prostředků pevných dokumentů do jednoho, přenosného a snadno distribuovatelného souboru.

  • Zobrazení dokumentů pomocí aplikace XPS Viewer.

  • Výstup dokumentů v nativním výstupním formátu tiskové fronty systému Windows Vista.

  • Směrujte dokumenty přímo na tiskárnu kompatibilní se systémem XPS.

Viz také