Documents dans WPFDocuments in WPF

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) offre un large éventail de fonctionnalités de document qui permettent de créer du contenu haute fidélité conçu pour être plus facilement accessible et lu que dans les générations précédentes de Windows.offers a wide range of document features that enable the creation of high-fidelity content that is designed to be more easily accessed and read than in previous generations of Windows. En plus d’une amélioration des capacités et de la qualité, WPFWPF fournit également des services intégrés pour l’affichage, le packaging et la sécurité des documents.In addition to enhanced capabilities and quality, WPFWPF also provides integrated services for document display, packaging, and security. Cette rubrique fournit une introduction aux types et au packaging des documents WPFWPF.This topic provides an introduction to WPFWPF document types and document packaging.

Types de documentsTypes of Documents

WPFWPF divise les documents en deux grandes catégories basées sur leur utilisation prévue. Ces catégories de documents sont appelées "documents fixes" et "documents dynamiques".divides documents into two broad categories based on their intended use; these document categories are termed "fixed documents" and "flow documents."

Les documents fixes sont destinés aux applications qui nécessitent une présentation détaillée « ce que vous voyez ? » (WYSIWYG), indépendamment de l’affichage ou du matériel d’imprimante utilisé.Fixed documents are intended for applications that require a precise "what you see is what you get" (WYSIWYG) presentation, independent of the display or printer hardware used. Les documents fixes sont principalement utilisés pour la PAO (Publication Assistée par Ordinateur), le traitement de texte et la présentation d’un formulaire, où le respect de la conception de la page d’origine est essentiel.Typical uses for fixed documents include desktop publishing, word processing, and form layout, where adherence to the original page design is critical. Dans le cadre de sa disposition, un document fixe conserve l’emplacement précis des éléments de contenu, indépendamment de l’écran d’affichage ou de l’appareil d’impression utilisé.As part of its layout, a fixed document maintains the precise positional placement of content elements independent of the display or print device in use. Par exemple, une page de document fixe affichée en 96 ppp (points par pouce) apparaît de la même manière que lorsqu’elle est imprimée sur une imprimante laser 600 ppp ou une photocomposeuse 4800 ppp.For example, a fixed document page viewed on 96 dpi display will appear exactly the same when it is output to a 600 dpi laser printer as when it is output to a 4800 dpi phototypesetter. Dans tous les cas, la disposition de la page reste la même, tandis que la qualité du document s’optimise selon les capacités de chaque appareil.The page layout remains the same in all cases, while the document quality maximizes to the capabilities of each device.

En comparaison, les documents dynamiques sont conçus pour optimiser l’affichage et la lisibilité. Ils trouvent leur meilleure exploitation quand la facilité de lecture est le scénario principal d’utilisation du document.By comparison, flow documents are designed to optimize viewing and readability and are best utilized when ease of reading is the primary document consumption scenario. Au lieu d’avoir une disposition prédéfinie, ces documents dynamiques ajustent et refluent dynamiquement leur contenu en fonction des variables d’exécution telles que la taille de la fenêtre, la résolution de l’appareil et les préférences facultatives de l’utilisateur.Rather than being set to one predefined layout, flow documents dynamically adjust and reflow their content based on run-time variables such as window size, device resolution, and optional user preferences. Une page web est un exemple simple de document dynamique où le contenu est mis en forme dynamiquement pour s’adapter à la fenêtre active.A Web page is a simple example of a flow document where the page content is dynamically formatted to fit the current window. Les documents dynamiques optimisent l’expérience d’affichage et de lecture de l’utilisateur, en fonction de l’environnement d’exécution.Flow documents optimize the viewing and reading experience for the user, based on the runtime environment. Par exemple, le même document dynamique se remet en forme dynamiquement pour une lisibilité optimale sur un écran haute résolution de 19 pouces ou un petit écran de PDA de 2x3 pouces.For example, the same flow document will dynamically reformat for optimal readability on either high-resolution 19-inch display or a small 2x3-inch PDA screen. En outre, les documents dynamiques possèdent plusieurs fonctionnalités intégrées, notamment la recherche, les modes d’affichage qui optimisent la lisibilité et la possibilité de changer la taille et l’apparence des polices.In addition, flow documents have a number of built in features including search, viewing modes that optimize readability, and the ability to change the size and appearance of fonts. Pour obtenir des illustrations, des exemples et des informations complètes sur les documents dynamiques, consultez Vue d’ensemble des documents dynamiques.See Flow Document Overview for illustrations, examples, and in-depth information on flow documents.

Contrôles de document et disposition du texteDocument Controls and Text Layout

L' .NET Framework fournit un ensemble de contrôles prédéfinis qui simplifient l’utilisation de documents fixes, de documents dynamiques et de texte général dans votre application.The .NET Framework provides a set of pre-built controls that simplify using fixed documents, flow documents, and general text within your application. L’affichage du contenu de document fixe est pris en charge à l’aide du contrôle DocumentViewer.The display of fixed document content is supported using the DocumentViewer control. L’affichage du contenu d’un document dynamique est pris en charge par trois contrôles différents : FlowDocumentReader, FlowDocumentPageVieweret FlowDocumentScrollViewer qui mappent à différents scénarios utilisateur (voir les sections ci-dessous).Display of flow document content is supported by three different controls: FlowDocumentReader, FlowDocumentPageViewer, and FlowDocumentScrollViewer which map to different user scenarios (see sections below). D’autres contrôles WPFWPF fournissent une disposition simplifiée pour la prise en charge des utilisations générales de texte (voir Texte dans l’interface utilisateur, ci-dessous).Other WPFWPF controls provide simplified layout to support general text uses (see Text in the User Interface, below).

Contrôle de document fixe - DocumentViewerFixed Document Control - DocumentViewer

Le contrôle DocumentViewer est conçu pour afficher du contenu FixedDocument.The DocumentViewer control is designed to display FixedDocument content. Le contrôle DocumentViewer fournit une interface utilisateur intuitive qui fournit une prise en charge intégrée pour les opérations courantes, notamment la sortie d’impression, la copie dans le presse-papiers, le zoom et les fonctionnalités de recherche de texte.The DocumentViewer control provides an intuitive user interface that provides built-in support for common operations including print output, copy to clipboard, zoom, and text search features. Le contrôle permet d’accéder aux pages de contenu par le biais d’un mécanisme de défilement familier.The control provides access to pages of content through a familiar scrolling mechanism. Comme tous les contrôles WPFWPF, DocumentViewer prend en charge le restyleage complet ou partiel, ce qui permet au contrôle d’être intégré visuellement dans pratiquement n’importe quelle application ou n’importe quel environnement.Like all WPFWPF controls, DocumentViewer supports complete or partial restyling, which enables the control to be visually integrated into virtually any application or environment.

DocumentViewer est conçu pour afficher le contenu en lecture seule ; la modification ou la modification de contenu n’est pas disponible et n’est pas prise en charge.DocumentViewer is designed to display content in a read-only manner; editing or modification of content is not available and is not supported.

Contrôles de document dynamiqueFlow Document Controls

Notes

Pour plus d’informations sur les fonctionnalités de document dynamique et sur la façon de les créer, consultez vue d’ensemble des documents dynamiques.For more detailed information on flow document features and how to create them, see Flow Document Overview.

L’affichage du contenu d’un document dynamique est pris en charge par trois contrôles : FlowDocumentReader, FlowDocumentPageVieweret FlowDocumentScrollViewer.Display of flow document content is supported by three controls: FlowDocumentReader, FlowDocumentPageViewer, and FlowDocumentScrollViewer.

FlowDocumentReaderFlowDocumentReader

FlowDocumentReader inclut des fonctionnalités qui permettent à l’utilisateur de choisir dynamiquement entre différents modes d’affichage, y compris un mode d’affichage page unique (page par page), un mode d’affichage à deux pages à un moment donné (format de livre) et un défilement continu (sans bas). mode d’affichage.FlowDocumentReader includes features that enable the user to dynamically choose between various viewing modes, including a single-page (page-at-a-time) viewing mode, a two-page-at-a-time (book reading format) viewing mode, and a continuous scrolling (bottomless) viewing mode. Pour plus d’informations sur ces modes d’affichage, consultez FlowDocumentReaderViewingMode.For more information about these viewing modes, see FlowDocumentReaderViewingMode. Si vous n’avez pas besoin de basculer dynamiquement entre les différents modes d’affichage, FlowDocumentPageViewer et FlowDocumentScrollViewer fournir des visionneuses de contenu de fluide plus légères qui sont fixes dans un mode d’affichage particulier.If you do not need the ability to dynamically switch between different viewing modes, FlowDocumentPageViewer and FlowDocumentScrollViewer provide lighter-weight flow content viewers that are fixed in a particular viewing mode.

FlowDocumentPageViewer et FlowDocumentScrollViewerFlowDocumentPageViewer and FlowDocumentScrollViewer

FlowDocumentPageViewer affiche le contenu en mode d’affichage page par page, tandis que FlowDocumentScrollViewer affiche le contenu en mode de défilement continu.FlowDocumentPageViewer shows content in page-at-a-time viewing mode, while FlowDocumentScrollViewer shows content in continuous scrolling mode. Les FlowDocumentPageViewer et les FlowDocumentScrollViewer sont fixés à un mode d’affichage particulier.Both FlowDocumentPageViewer and FlowDocumentScrollViewer are fixed to a particular viewing mode. Comparer à FlowDocumentReader, qui comprend des fonctionnalités qui permettent à l’utilisateur de choisir dynamiquement entre différents modes d’affichage (comme fourni par l’énumération FlowDocumentReaderViewingMode), au détriment d’une plus grande consommation de ressources que FlowDocumentPageViewer ou FlowDocumentScrollViewer.Compare to FlowDocumentReader, which includes features that enable the user to dynamically choose between various viewing modes (as provided by the FlowDocumentReaderViewingMode enumeration), at the cost of being more resource intensive than FlowDocumentPageViewer or FlowDocumentScrollViewer.

Par défaut, une barre de défilement verticale est toujours affichée et une barre de défilement horizontale apparaît si nécessaire.By default, a vertical scrollbar is always shown, and a horizontal scrollbar becomes visible if needed. La Interface utilisateurUI par défaut pour FlowDocumentScrollViewer n’inclut pas de barre d’outils ; Toutefois, la propriété IsToolBarVisible peut être utilisée pour activer une barre d’outils intégrée.The default Interface utilisateurUI for FlowDocumentScrollViewer does not include a toolbar; however, the IsToolBarVisible property can be used to enable a built-in toolbar.

Texte dans l’interface utilisateurText in the User Interface

En plus d’ajouter du texte à des documents, vous pouvez bien évidemment utiliser du texte dans l’interface utilisateur de l’application, notamment dans des formulaires.Besides adding text to documents, text can obviously be used in application UI such as forms. WPFWPF inclut plusieurs contrôles pour dessiner le texte à l’écran.includes multiple controls for drawing text to the screen. Chaque contrôle cible un scénario différent et dispose de sa propre liste de fonctionnalités et limitations.Each control is targeted to a different scenario and has its own list of features and limitations. En général, l’élément TextBlock doit être utilisé quand une prise en charge de texte limitée est nécessaire, par exemple une courte phrase dans une interface utilisateur (UI)user interface (UI).In general, the TextBlock element should be used when limited text support is required, such as a brief sentence in a interface utilisateur (UI)user interface (UI). Label peut être utilisé quand une prise en charge minimale du texte est requise.Label can be used when minimal text support is required. Pour plus d’informations, consultez Vue d’ensemble de TextBlock.For more information, see TextBlock Overview.

Packaging de documentsDocument Packaging

Les API System.IO.Packaging offrent un moyen efficace d’organiser les données d’application, le contenu des documents et les ressources associées dans un conteneur unique qui est simple à accéder, portable et facile à distribuer.The System.IO.Packaging APIs provide an efficient means to organize application data, document content, and related resources in a single container that is simple to access, portable, and easy to distribute. Un fichier ZIP est un exemple de type de Package qui peut contenir plusieurs objets en tant qu’unité unique.A ZIP file is an example of a Package type capable of holding multiple objects as a single unit. Les API de Packaging fournissent une implémentation de ZipPackage par défaut conçue à l’aide d’une norme Open Packaging Conventions avec l’architecture de fichier XML et ZIP.The packaging APIs provide a default ZipPackage implementation designed using an Open Packaging Conventions standard with XML and ZIP file architecture. Les API de Packaging WPFWPF facilitent la création de packages, ainsi que le stockage et l’accès aux objets qu’ils contiennent.The WPFWPF packaging APIs make it simple to create packages, and to store and access objects within them. Un objet stocké dans un Package est désigné sous le terme de PackagePart (« part »).An object stored in a Package is referred to as a PackagePart ("part"). Les packages peuvent également inclure des certificats numériques signés pouvant être utilisés pour identifier le créateur d’une partie, et pour valider que le contenu d’un package n’a pas été modifié.Packages can also include signed digital certificates that can be used to identify the originator of a part and to validate that the contents of a package have not been modified. Les packages incluent également une fonctionnalité de PackageRelationship qui permet d’ajouter des informations supplémentaires à un package ou de les associer à des parties spécifiques sans modifier réellement le contenu des composants existants.Packages also include a PackageRelationship feature that allows additional information to be added to a package or associated with specific parts without actually modifying the content of existing parts. Les services de package prennent également en charge Microsoft Windows Rights Management (RM).Package services also support Microsoft Windows Rights Management (RM).

L’architecture de package WPFWPF sert de base à de nombreuses technologies clés :The WPFWPF Package architecture serves as the foundation for a number of key technologies:

  • Documents XPS conformes à la spécification XPS (XML Paper Specification).XPS documents conforming to the XML Paper Specification (XPS).

  • Documents au format Microsoft Office "12" Open XML (.docx).Microsoft Office "12" open XML format documents (.docx).

  • Formats de stockage personnalisés pour la conception de vos propres applications.Custom storage formats for your own application design.

En fonction des API de Packaging, un XpsDocument est spécialement conçu pour stocker des documents de contenu fixe WPFWPF.Based on the packaging APIs, an XpsDocument is specifically designed for storing WPFWPF fixed content documents. Un XpsDocument est un document autonome qui peut être ouvert dans une visionneuse, affiché dans un contrôle DocumentViewer, routé vers un spouleur d’impression ou sortie directe vers une imprimante compatible XPS.An XpsDocument is a self-contained document that can be opened in a viewer, displayed in a DocumentViewer control, routed to a print spool, or output directly to an XPS-compatible printer.

Les sections suivantes fournissent des informations supplémentaires sur les API Package et XpsDocument fournies avec WPFWPF.The following sections provide additional information on the Package and XpsDocument APIs provided with WPFWPF.

Composants d’un packagePackage Components

Les API de packaging WPFWPF permettent d’organiser les données et documents d’une application en une seule unité portable.The WPFWPF packaging APIs allow application data and documents to be organized into a single portable unit. Un fichier ZIP est l’un des types de package les plus courants. Il s’agit du type de package par défaut fourni avec WPFWPF.A ZIP file is one of the most common types of packages and is the default package type provided with WPFWPF. Package lui-même est une classe abstraite à partir de laquelle ZipPackage est implémentée à l’aide d’une architecture de fichier ZIP et XML standard ouverte.Package itself is an abstract class from which ZipPackage is implemented using an open standard XML and ZIP file architecture. La méthode Open utilise ZipPackage pour créer et utiliser des fichiers ZIP par défaut.The Open method uses ZipPackage to create and use ZIP files by default. Un package peut contenir trois types d’éléments de base :A package can contain three basic types of items:

PackagePart Contenu d’application, données, documents et fichiers de ressources.Application content, data, documents, and resource files.
PackageDigitalSignature Certificat X.509 pour l’identification, l’authentification et la validation.[X.509 Certificate] for identification, authentication and validation.
PackageRelationship Informations ajoutées relatives au package ou à une partie spécifique.Added information related to the package or a specific part.

PackagePartsPackageParts

Une PackagePart (« partie ») est une classe abstraite qui fait référence à un objet stocké dans une Package.A PackagePart ("part") is an abstract class that refers to an object stored in a Package. Dans un fichier ZIP, les parties du package correspondent aux fichiers individuels stockés qu’il contient.In a ZIP file, the package parts correspond to the individual files stored within the ZIP file. ZipPackagePart fournit l’implémentation par défaut des objets sérialisables stockés dans une ZipPackage.ZipPackagePart provides the default implementation for serializable objects stored in a ZipPackage. Comme pour un système de fichiers, les parties contenues dans le package sont stockées dans des répertoires hiérarchiques ou sous forme de dossiers.Like a file system, parts contained in the package are stored in hierarchical directory or "folder-style" organization. À l’aide des API de Packaging WPFWPF, les applications peuvent écrire, stocker et lire plusieurs objets PackagePart à l’aide d’un seul conteneur de fichier ZIP.Using the WPFWPF packaging APIs, applications can write, store, and read multiple PackagePart objects using a single ZIP file container.

PackageDigitalSignaturesPackageDigitalSignatures

Pour des éléments de sécurité, une PackageDigitalSignature (« signature numérique ») peut être associée à des parties d’un package.For security, a PackageDigitalSignature ("digital signature") can be associated with parts within a package. Un PackageDigitalSignature incorpore un [509] qui fournit deux fonctionnalités :A PackageDigitalSignature incorporates a [509] that provides two features:

  1. Identifie et authentifie le créateur de la partie.Identifies and authenticates the originator of the part.

  2. Vérifie que la partie n’a pas été modifiée.Validates that the part has not been modified.

La signature numérique n’empêche pas la modification d’une partie, mais un contrôle de validation par rapport à la signature numérique échoue si la partie est modifiée d’une façon ou d’une autre.The digital signature does not preclude a part from being modified, but a validation check against the digital signature will fail if the part is altered in any way. L’application peut alors exécuter l’action appropriée : par exemple, bloquer l’ouverture de la partie, ou notifier l’utilisateur que la partie a été modifiée et n’est pas sécurisée.The application can then take appropriate action—for example, block opening the part or notify the user that the part has been modified and is not secure.

PackageRelationshipsPackageRelationships

Une PackageRelationship (« Relationship ») fournit un mécanisme permettant d’associer des informations supplémentaires au package ou à une partie du package.A PackageRelationship ("relationship") provides a mechanism for associating additional information with the package or a part within the package. Une relation est une fonctionnalité de package qui peut associer des informations supplémentaires à une partie sans en modifier le contenu actuel.A relationship is a package-level facility that can associate additional information with a part without modifying the actual part content. L’insertion directe de nouvelles données dans le contenu de la partie n’est généralement pas très pratique dans de nombreux cas :Inserting new data directly into the part content of is usually not practical in many cases:

  • Le type réel de la partie et son schéma de contenu ne sont pas connus.The actual type of the part and its content schema is not known.

  • Même s’il est connu, le schéma de contenu peut ne pas fournir de moyen d’ajouter de nouvelles informations.Even if known, the content schema might not provide a means for adding new information.

  • La partie peut être chiffrée ou signée numériquement, empêchant toute modification.The part might be digitally signed or encrypted, precluding any modification.

Les relations de package fournissent un moyen détectable d’ajouter et d’associer des informations supplémentaires à des parties individuelles ou à l’ensemble du package.Package relationships provide a discoverable means for adding and associating additional information with individual parts or with the entire package. Les relations de package sont utilisées pour deux fonctions principales :Package relationships are used for two primary functions:

  1. Définition des relations de dépendance d’une partie à l’autre.Defining dependency relationships from one part to another part.

  2. Définition des relations d’information qui ajoutent des notes ou d’autres données relatives à la partie.Defining information relationships that add notes or other data related to the part.

Un PackageRelationship fournit un moyen rapide et détectable de définir des dépendances et d’ajouter d’autres informations associées à une partie du package ou au package dans son ensemble.A PackageRelationship provides a quick, discoverable means to define dependencies and add other information associated with a part of the package or the package as a whole.

Relations de dépendanceDependency Relationships

Les relations de dépendance sont utilisées pour décrire les dépendances qu’une partie crée sur d’autres parties.Dependency relationships are used to describe dependencies that one part makes to other parts. Par exemple, un package peut contenir une partie HTML comprenant une ou plusieurs balises d’image <img>.For example, a package might contain an HTML part that includes one or more <img> image tags. Les balises d’image font référence à des images situées sur d’autres parties internes au package ou externes au package (comme celles accessibles sur Internet).The image tags refer to images that are located either as other parts internal to the package or external to the package (such as accessible over the Internet). La création d’une PackageRelationship associée au fichier HTML facilite et simplifie la découverte et l’accès aux ressources dépendantes.Creating a PackageRelationship associated with HTML file makes discovering and accessing the dependent resources quick and easy. Une application de navigateur ou de visionneuse peut accéder directement aux relations de parties et commencer immédiatement l’assemblage des ressources dépendantes sans connaître le schéma ou analyser le document.A browser or viewer application can directly access the part relationships and immediately begin assembling the dependent resources without knowing the schema or parsing the document.

Relations d’informationsInformation Relationships

À l’instar d’une note ou d’une annotation, une PackageRelationship peut également être utilisée pour stocker d’autres types d’informations à associer à un composant sans avoir à modifier réellement le contenu du composant lui-même.Similar to a note or annotation, a PackageRelationship can also be used to store other types of information to be associated with a part without having to actually modify the part content itself.

Documents XPSXPS Documents

Le document XPS (XML Paper Specification) est un package qui contient un ou plusieurs documents fixes, ainsi que toutes les ressources et informations requises pour le rendu.XML Paper Specification (XPS) document is a package that contains one or more fixed-documents along with all the resources and information required for rendering. XPS est également le format de fichier de spouleur d’impression Windows Vista natif.XPS is also the native Windows Vista print spool file format. Une XpsDocument est stockée dans un jeu de données ZIP standard et peut inclure une combinaison de composants XML et binaires, tels que des fichiers d’image et de police.An XpsDocument is stored in standard ZIP dataset, and can include a combination of XML and binary components, such as image and font files. Des PackageRelationships sont utilisés pour définir les dépendances entre le contenu et les ressources nécessaires pour afficher le document.PackageRelationships are used to define the dependencies between the content and the resources required to fully render the document. La conception XpsDocument fournit une solution de document unique et haute fidélité qui prend en charge plusieurs utilisations :The XpsDocument design provides a single, high-fidelity document solution that supports multiple uses:

  • Lecture, écriture et stockage de ressources et de contenu de document fixe sous la forme d’un fichier unique, portable et facile à distribuer.Reading, writing, and storing fixed-document content and resources as a single, portable, and easy-to-distribute file.

  • Affichage des documents avec l’application de la Visionneuse XPS.Displaying documents with the XPS Viewer application.

  • Sortie de documents au format de sortie de spool d’impression natif de Windows Vista.Outputting documents in the native print spool output format of Windows Vista.

  • Routage direct des documents vers une imprimante compatible XPS.Routing documents directly to an XPS-compatible printer.

Voir aussiSee also