Megosztás a következőn keresztül:


Dokumentumok a WPF-ben

A Windows Presentation Foundation (WPF) számos olyan dokumentumfunkciót kínál, amelyek lehetővé teszik a Windows korábbi generációihoz képest egyszerűbben elérhető és olvasható tartalmak létrehozását. A továbbfejlesztett képességek és minőség mellett a WPF integrált szolgáltatásokat is biztosít a dokumentumok megjelenítéséhez, csomagolásához és biztonságához. Ez a témakör bemutatja a WPF-dokumentumok típusait és a dokumentumcsomagolást.

Dokumentumtípusok

A WPF két széles kategóriába sorolja a dokumentumokat a rendeltetésük alapján; ezek a dokumentumkategóriák "rögzített dokumentumok" és "folyamatdokumentumok".

A rögzített dokumentumok olyan alkalmazásokhoz készültek, amelyek a használt kijelzőtől vagy nyomtatóhardvertől függetlenül pontos "amit lát, amit lát" (WYSIWYG) bemutatót igényelnek. A rögzített dokumentumok jellemző felhasználási módja az asztali közzététel, a szövegfeldolgozás és az űrlapelrendezés, ahol az eredeti oldalterv betartása kritikus fontosságú. Az elrendezés részeként a rögzített dokumentum megőrzi a tartalomelemek pontos elhelyezését a használatban lévő megjelenítési vagy nyomtatási eszközétől függetlenül. Például egy 96 dpi-s kijelzőn megtekintett rögzített dokumentumlap pontosan ugyanúgy fog kinézni, amikor egy 600 dpi-s lézernyomtatón vagy egy 4800 dpi-s fototípuskészítőn kerül nyomtatásra. A lapelrendezés minden esetben ugyanaz marad, a dokumentum minősége pedig az egyes eszközök képességeinek maximális kihasználása mellett.

Összehasonlításképpen a folyamatdokumentumok úgy vannak kialakítva, hogy optimalizálják a megtekintést és az olvashatóságot, és a legjobban akkor használják, ha az egyszerű olvasás az elsődleges dokumentumhasználati forgatókönyv. Ahelyett, hogy egy előre definiált elrendezésre állítaná be, a folyamatdokumentumok dinamikusan módosítják és újrafuttatják a tartalmat a futásidejű változók, például az ablakméret, az eszközfeloldás és az opcionális felhasználói beállítások alapján. A weblap egy egyszerű példa egy folyamatdokumentumra, ahol a lap tartalma dinamikusan van formázva, hogy illeszkedjen az aktuális ablakhoz. A folyamatdokumentumok a futtatókörnyezet alapján optimalizálják a felhasználó megtekintési és olvasási élményét. Ugyanez a folyamatdokumentum például dinamikusan átalakítja az optimális olvashatóságot nagy felbontású 19 hüvelykes kijelzőn vagy egy kis 2x3 hüvelykes PDA-képernyőn. Emellett a folyamatdokumentumok számos beépített funkcióval rendelkeznek, beleértve a keresést, az olvashatóságot optimalizáló megtekintési módokat, valamint a betűtípusok méretének és megjelenésének módosítását. A folyamatdokumentumok áttekintésében illusztrációkat, példákat és részletes információkat talál a folyamatdokumentumokról.

Dokumentumvezérlők és szövegelrendezés

A .NET-keretrendszer előre összeállított vezérlők készletét biztosítja, amelyek leegyszerűsítik a rögzített dokumentumok, a folyamatdokumentumok és az általános szövegek használatát az alkalmazásban. A rögzített dokumentumtartalom megjelenítése a DocumentViewer vezérlővel támogatott. A folyamatdokumentum tartalmának megjelenítését három különböző vezérlő támogatja: FlowDocumentReader, FlowDocumentPageViewerés FlowDocumentScrollViewer hogy melyik megfeleltethető a különböző felhasználói forgatókönyveknek (lásd az alábbi szakaszokat). Más WPF-vezérlők egyszerűsített elrendezést biztosítanak az általános szöveghasználatok támogatásához (lásd a felhasználói felület szövegét alább).

Rögzített dokumentumvezérlő – DocumentViewer

A DocumentViewer vezérlő úgy lett tervezve, hogy FixedDocument tartalmat jelenítsen meg. A DocumentViewer vezérlő intuitív felhasználói felületet biztosít, amely beépített támogatást nyújt a gyakori műveletekhez, beleértve a nyomtatási kimenetet, a vágólapra másolást, a nagyítást és a szövegkeresési funkciókat. A vezérlő egy jól ismert görgetési mechanizmuson keresztül biztosít hozzáférést a tartalomoldalakhoz. Mint minden WPF-vezérlő, DocumentViewer a teljes vagy részleges restilinget is támogatja, így a vezérlő vizuálisan integrálható gyakorlatilag bármilyen alkalmazásba vagy környezetbe.

DocumentViewer úgy van kialakítva, hogy a tartalmat kizárólag olvasható formában jelenítse meg; a tartalom szerkesztése vagy módosítása nem lehetséges, és nem támogatott.

Folyamatdokumentum-vezérlők

Megjegyzés:

A folyamatdokumentum funkcióiról és létrehozásának módjáról további információt a Folyamatdokumentum áttekintése című témakörben talál.

A folyamatdokumentum tartalmának megjelenítését három vezérlő támogatja: FlowDocumentReader, FlowDocumentPageViewerés FlowDocumentScrollViewer.

FlowDocumentReader

FlowDocumentReader Olyan funkciókat tartalmaz, amelyek lehetővé teszik a felhasználó számára, hogy dinamikusan válasszon a különböző megjelenítési módok közül, beleértve az egyoldalas (lap-at-a-time) megjelenítési módot, a kétoldalas (könyvolvasási formátum) megjelenítési módot és a folyamatos görgetési (alulról lefelé nem álló) megjelenítési módot. További információ ezekről a megtekintési módokról: FlowDocumentReaderViewingMode. Ha nincs szüksége arra, hogy dinamikusan váltson a különböző megjelenítési módok között, a FlowDocumentPageViewer és a FlowDocumentScrollViewer kisebb erőforrás-igényű tartalommegjelenítőket biztosítanak, amelyek egy adott megjelenítési módban rögzítettek.

FlowDocumentPageViewer és FlowDocumentScrollViewer

FlowDocumentPageViewer A tartalmakat lapozási módban jeleníti meg, míg FlowDocumentScrollViewer a tartalmat folyamatos görgetési módban jeleníti meg. Mindkettő FlowDocumentPageViewer , és FlowDocumentScrollViewer egy adott megtekintési módhoz van rögzítve. FlowDocumentReaderHasonlítsa össze azokkal a funkciókkal, amelyek lehetővé teszik a felhasználó számára, hogy dinamikusan válasszon a különböző megtekintési módok közül (az FlowDocumentReaderViewingMode enumerálás által biztosítottak szerint), annak árán, hogy erőforrás-igényesebb, mint FlowDocumentPageViewer vagy FlowDocumentScrollViewer.

Alapértelmezés szerint mindig megjelenik egy függőleges görgetősáv, és szükség esetén egy vízszintes görgetősáv is láthatóvá válik. Az alapértelmezett felhasználói felület FlowDocumentScrollViewer nem tartalmaz eszköztárat, IsToolBarVisible a tulajdonság azonban a beépített eszköztár engedélyezésére használható.

Szöveg a felhasználói felületen

Amellett, hogy szöveget ad hozzá a dokumentumokhoz, a szöveg természetesen használható az alkalmazás felhasználói felületén, például az űrlapokon. A WPF több vezérlőt is tartalmaz, amelyekkel szöveget rajzolhat a képernyőre. Minden vezérlő más-más forgatókönyvre irányul, és saját funkciókkal és korlátozásokkal rendelkezik. Általában a TextBlock elemet kell használni, ha korlátozott szövegtámogatásra van szükség, például egy rövid mondatot egy felhasználói felületen (UI). Label akkor használható, ha minimális szövegtámogatásra van szükség. További információ: TextBlock – Áttekintés.

Dokumentum csomagolása

Az System.IO.Packaging API-k hatékony eszközként szolgálnak az alkalmazásadatok, a dokumentumtartalmak és a kapcsolódó erőforrások egyetlen, könnyen hozzáférhető, hordozható és könnyen terjeszthető tárolóban való rendszerezésére. A ZIP-fájlok egy példa egy Package olyan típusra, amely képes több objektumot egyetlen egységként tartani. A csomagolási API-k xml- és ZIP-fájlarchitektúrával rendelkező Open Packaging Conventions szabványt használó alapértelmezett ZipPackage implementációt biztosítanak. A WPF csomagolási API-k megkönnyítik a csomagok létrehozását, valamint a bennük lévő objektumok tárolását és elérését. Egy, a Package-ban tárolt objektumot "PackagePart" („résznek” nevezik). A csomagok olyan aláírt digitális tanúsítványokat is tartalmazhatnak, amelyek egy rész kezdeményezőjének azonosítására és annak ellenőrzésére szolgálnak, hogy a csomag tartalma nem módosult-e. A csomagok olyan PackageRelationship funkciót is tartalmaznak, amely lehetővé teszi további információk hozzáadását egy csomaghoz, vagy adott részekhez társítható anélkül, hogy ténylegesen módosítaná a meglévő alkatrészek tartalmát. A csomagszolgáltatások a Microsoft Windows Rights Managementet (RM) is támogatják.

A WPF-csomag architektúrája számos kulcsfontosságú technológia alapjaként szolgál:

  • Az XML-papír specifikációjának (XPS) megfelelő XPS-dokumentumok.

  • Microsoft Office "12" open XML formátumú dokumentumok (.docx).

  • Egyéni tárolási formátumok saját alkalmazástervezéshez.

A csomagolási API-k alapján egy XpsDocument kifejezetten WPF-hez készült, hogy rögzített tartalmú dokumentumokat tároljon. Az an XpsDocument olyan önálló dokumentum, amely megnyitható egy megjelenítőben, megjeleníthető egy DocumentViewer vezérlőben, egy nyomtatási sorba irányítva, vagy közvetlenül egy XPS-kompatibilis nyomtatóra irányítja a kimenetet.

A következő szakaszok további információkat nyújtanak a WPF-hez biztosított Package és XpsDocument API-król.

Csomagösszetevők

A WPF csomagolási API-k lehetővé teszik az alkalmazásadatok és dokumentumok egyetlen hordozható egységbe rendezését. A ZIP-fájl az egyik leggyakoribb csomagtípus, és a WPF-hez biztosított alapértelmezett csomagtípus. Package maga egy absztrakt osztály, amely ZipPackage nyílt standard XML- és ZIP-fájlarchitektúra használatával implementálható. A Open metódus alapértelmezés szerint ZIP-fájlok létrehozására és használatára használható ZipPackage . A csomagok három alapvető elemtípust tartalmazhatnak:

Termék Leírás
PackagePart Alkalmazástartalmak, adatok, dokumentumok és erőforrásfájlok.
PackageDigitalSignature [X.509-tanúsítvány] azonosításhoz, hitelesítéshez és ellenőrzéshez.
PackageRelationship A csomaghoz vagy egy adott részhez kapcsolódó információk hozzáadva.

CsomagAlkatrészek

A PackagePart ("rész") egy absztrakt osztály, amely egy adott helyen tárolt Packageobjektumra hivatkozik. A ZIP-fájlokban a csomagrészek a ZIP-fájlban tárolt egyes fájloknak felelnek meg. ZipPackagePart biztosítja a ZipPackage-ban tárolt szerializálható objektumok alapértelmezett implementációját. A fájlrendszerhez hasonlóan a csomag részei hierarchikus könyvtárban vagy "mappastílusú" szervezetben vannak tárolva. A WPF csomagolási API-k használatával az alkalmazások egyetlen ZIP-fájltároló használatával több PackagePart objektumot is írhatnak, tárolhatnak és olvashatnak.

PackageDigitalSignatures

A biztonság érdekében a PackageDigitalSignature csomag részeihez ("digitális aláírás") társítható. Az A PackageDigitalSignature tartalmaz egy [509]-et, amely két funkciót biztosít:

  1. Azonosítja és hitelesíti a rész létrehozóját.

  2. Ellenőrzi, hogy a rész nem lett-e módosítva.

A digitális aláírás nem zárja ki egy rész módosítását, de a digitális aláírás ellenőrzése sikertelen lesz, ha a rész bármilyen módon módosul. Az alkalmazás ezután elvégezheti a megfelelő műveletet – például letilthatja az alkatrész megnyitását, vagy értesítheti a felhasználót arról, hogy az alkatrész módosult, és nem biztonságos.

Csomagkapcsolatok

A PackageRelationship ("kapcsolat") olyan mechanizmust biztosít, amellyel további információkat társíthat a csomaghoz vagy a csomag egy részéhez. A kapcsolat egy csomagszintű létesítmény, amely további információkat társíthat egy részhez a tényleges résztartalom módosítása nélkül. Az új adatok közvetlen beszúrása a résztartalomba általában sok esetben nem praktikus:

  • Az alkatrész és a tartalomséma tényleges típusa nem ismert.

  • Még ha ismert is, előfordulhat, hogy a tartalomséma nem biztosít új információk hozzáadását.

  • Előfordulhat, hogy a rész digitálisan alá van írva vagy titkosítva van, ami kizárja a módosításokat.

A csomagkapcsolatok felderíthető eszközökkel bővíthetők és társíthatók további információk az egyes részekhez vagy a teljes csomaghoz. A csomagkapcsolatok két elsődleges függvényhez használhatók:

  1. Függőségi kapcsolatok definiálása egyik részről a másikra.

  2. Olyan adatkapcsolatok definiálása, amelyek jegyzeteket vagy más, a részhez kapcsolódó adatokat adnak hozzá.

Az A PackageRelationship gyors és felderíthető eszközöket biztosít a függőségek meghatározásához és a csomag vagy a csomag egészéhez kapcsolódó egyéb információk hozzáadásához.

Függőségi kapcsolatok

A függőségi kapcsolatok olyan függőségek leírására szolgálnak, amelyeket az egyik rész más részekhez hoz. Előfordulhat például, hogy egy csomag tartalmaz egy HTML-részt, amely egy vagy több <img> képcímkét tartalmaz. A képcímkék olyan képekre hivatkoznak, amelyek a csomagon belül vagy a csomagon kívül találhatóak (például az interneten keresztül érhetők el). PackageRelationship A HTML-fájlhoz társított fájlok létrehozása gyors és egyszerűvé teszi a függő erőforrások felderítését és elérését. A böngésző- vagy megjelenítőalkalmazások közvetlenül hozzáférhetnek a részkapcsolatokhoz, és azonnal megkezdhetik a függő erőforrások összeállítását anélkül, hogy ismerné a sémát, vagy elemezné a dokumentumot.

Információs kapcsolatok

A jegyzethez vagy széljegyzethez hasonlóan más típusú információk tárolására is használható, PackageRelationship amelyek egy részhez társíthatók anélkül, hogy ténylegesen módosítania kellene magát a résztartalmat.

XPS-dokumentumok

Az XML Paper Specification (XPS) dokumentum egy olyan csomag, amely egy vagy több rögzített dokumentumot tartalmaz a rendereléshez szükséges összes erőforrással és információval együtt. Az XPS a Windows Vista nyomtatási sor natív fájlformátuma is. Az an XpsDocument standard ZIP-adatkészletben van tárolva, és xml- és bináris összetevők, például kép- és betűfájlok kombinációját is tartalmazhatja. A PackageRelationships a tartalom és a dokumentum teljes megjelenítéséhez szükséges erőforrások közötti függőségek meghatározására szolgál. A XpsDocument kialakítás egyetlen, nagy megbízhatóságú dokumentummegoldást biztosít, amely több felhasználási lehetőséget is támogat:

  • Rögzített dokumentumtartalmak és -erőforrások egyetlen, hordozható és könnyen terjeszthető fájlként való olvasása, írása és tárolása.

  • Dokumentumok megjelenítése az XPS Viewer alkalmazással.

  • Dokumentumok kimenete a Windows Vista natív nyomtatásisor-kimeneti formátumában.

  • Dokumentumok átirányítása közvetlenül EGY XPS-kompatibilis nyomtatóra.

Lásd még