Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Windows Presentation Foundation (WPF) ofrece una amplia gama de características de documento que permiten crear contenido de alta fidelidad diseñado para tener acceso y leer más fácilmente que en generaciones anteriores de Windows. Además de funcionalidades y calidad mejoradas, WPF también proporciona servicios integrados para la visualización, el empaquetado y la seguridad de documentos. En este tema se proporciona una introducción a los tipos de documentos y el empaquetado de documentos de WPF.
Tipos de documentos
WPF divide los documentos en dos categorías generales en función de su uso previsto; estas categorías de documentos se denominan "documentos fijos" y "documentos de flujo".
Los documentos fijos están diseñados para aplicaciones que requieren una presentación precisa "lo que ve es lo que obtiene" (WYSIWYG), independientemente del hardware de pantalla o impresora usado. Entre los usos habituales de documentos fijos se incluyen la publicación de escritorio, el procesamiento de texto y el diseño de formularios, donde el cumplimiento del diseño de página original es fundamental. Como parte de su diseño, un documento fijo mantiene la colocación posicional precisa de los elementos de contenido independientemente de la pantalla o del dispositivo de impresión en uso. Por ejemplo, una página de documento fija vista en la pantalla de 96 ppp aparecerá exactamente igual cuando se genera en una impresora láser de 600 ppp como cuando se genera en un fototipo de 4800 ppp. El diseño de página sigue siendo el mismo en todos los casos, mientras que la calidad del documento maximiza las funcionalidades de cada dispositivo.
En comparación, los documentos de flujo están diseñados para optimizar la visualización y la legibilidad y se usan mejor cuando la facilidad de lectura es el escenario principal de consumo de documentos. En lugar de establecerse en un diseño predefinido, los documentos se ajustan dinámicamente y reorganizan su contenido en función de variables durante la ejecución, como el tamaño de la ventana, la resolución de los dispositivos y las preferencias de usuario opcionales. Una página web es un ejemplo sencillo de un documento de flujo en el que el contenido de la página tiene el formato dinámico para ajustarse a la ventana actual. Los documentos de flujo optimizan la experiencia de visualización y lectura del usuario, en función del entorno de tiempo de ejecución. Por ejemplo, el mismo documento de flujo se volverá a formatear dinámicamente para lograr una legibilidad óptima en una pantalla de 19 pulgadas de alta resolución o en una pantalla PDA pequeña de 2x3 pulgadas. Además, los documentos de flujo tienen una serie de características integradas, como la búsqueda, los modos de visualización que optimizan la legibilidad y la capacidad de cambiar el tamaño y la apariencia de las fuentes. Consulte Información general del documento de flujo para obtener ilustraciones, ejemplos e información detallada sobre los documentos de flujo.
Controles de documento y diseño de texto
.NET Framework proporciona un conjunto de controles creados previamente que simplifican el uso de documentos fijos, documentos de flujo y texto general dentro de la aplicación. La visualización del contenido fijo del documento se admite mediante el DocumentViewer control . La visualización del contenido del documento de flujo es compatible con tres controles diferentes: FlowDocumentReader, FlowDocumentPageViewery FlowDocumentScrollViewer que se asignan a diferentes escenarios de usuario (consulte las secciones siguientes). Otros controles WPF proporcionan un diseño simplificado para admitir usos generales de texto (vea Texto en la interfaz de usuario, a continuación).
Control de documentos corregido: DocumentViewer
El DocumentViewer control está diseñado para mostrar FixedDocument contenido. El DocumentViewer control proporciona una interfaz de usuario intuitiva que proporciona compatibilidad integrada con operaciones comunes, como la salida de impresión, la copia en el Portapapeles, el zoom y las características de búsqueda de texto. El control proporciona acceso a las páginas de contenido a través de un mecanismo de desplazamiento conocido. Al igual que todos los controles WPF, DocumentViewer admite restyling completo o parcial, lo que permite que el control se integre visualmente en prácticamente cualquier aplicación o entorno.
DocumentViewer está diseñado para mostrar contenido de solo lectura; La edición o modificación del contenido no está disponible y no se admite.
Controles de documentos de flujo
Nota:
Para obtener información más detallada sobre las características del documento de flujo y cómo crearlas, consulte Información general del documento de flujo.
La visualización del contenido del documento de flujo es compatible con tres controles: FlowDocumentReader, FlowDocumentPageViewery FlowDocumentScrollViewer.
FlowDocumentReader
FlowDocumentReader incluye características que permiten al usuario elegir dinámicamente entre varios modos de visualización, incluido un modo de visualización de página única (página a tiempo), un modo de visualización de dos páginas a tiempo (formato de lectura de libros) y un modo de visualización de desplazamiento continuo (sin fondo). Para obtener más información sobre estos modos de visualización, vea FlowDocumentReaderViewingMode. Si no necesita la capacidad de cambiar dinámicamente entre diferentes modos de visualización FlowDocumentPageViewer y FlowDocumentScrollViewer, proporcionan visores de contenido de flujo de peso más ligero fijos en un modo de visualización particular.
FlowDocumentPageViewer y FlowDocumentScrollViewer
FlowDocumentPageViewer muestra contenido en modo de visualización de una página a la vez, mientras que FlowDocumentScrollViewer muestra contenido en modo de desplazamiento continuo. Tanto FlowDocumentPageViewer como FlowDocumentScrollViewer están fijados a un modo de visualización específico. Compare con FlowDocumentReader, que incluye características que permiten al usuario elegir dinámicamente entre varios modos de visualización (según lo proporcionado por la enumeración FlowDocumentReaderViewingMode), a costa de ser más intensivo en recursos que FlowDocumentPageViewer o FlowDocumentScrollViewer.
De forma predeterminada, siempre se muestra una barra de desplazamiento vertical y una barra de desplazamiento horizontal se vuelve visible si es necesario. La interfaz de usuario predeterminada para FlowDocumentScrollViewer no incluye una barra de herramientas; sin embargo, la IsToolBarVisible propiedad se puede usar para habilitar una barra de herramientas integrada.
Texto en la interfaz de usuario
Además de agregar texto a documentos, el texto se puede usar obviamente en la interfaz de usuario de la aplicación, como los formularios. WPF incluye varios controles para dibujar texto en la pantalla. Cada control está dirigido a un escenario diferente y tiene su propia lista de características y limitaciones. En general, el TextBlock elemento debe usarse cuando se requiere compatibilidad limitada con texto, como una frase breve en una interfaz de usuario (UI). Label se puede usar cuando se requiere compatibilidad mínima con texto. Para obtener más información, vea TextBlock Overview.
Empaquetado de documentos
Las System.IO.Packaging API proporcionan un medio eficaz para organizar los datos de la aplicación, el contenido del documento y los recursos relacionados en un único contenedor que es fácil de acceder, portátil y fácil de distribuir. Un archivo ZIP es un ejemplo de un Package tipo capaz de contener varios objetos como una sola unidad. Las API de empaquetado proporcionan una implementación predeterminada ZipPackage diseñada mediante un estándar de convenciones de empaquetado abierto con la arquitectura de archivos XML y ZIP. Las API de empaquetado de WPF facilitan la creación de paquetes y el almacenamiento y acceso a objetos dentro de ellos. Un objeto almacenado en un Package se conoce como PackagePart ("parte"). Los paquetes también pueden incluir certificados digitales firmados que se pueden usar para identificar el originador de una parte y para validar que el contenido de un paquete no se ha modificado. Los paquetes también incluyen una PackageRelationship característica que permite agregar información adicional a un paquete o asociarse a partes específicas sin modificar realmente el contenido de las partes existentes. Los servicios de paquetes también admiten Microsoft Windows Rights Management (RM).
La arquitectura del paquete WPF sirve como base para una serie de tecnologías clave:
Documentos XPS conformes a la especificación de papel XML (XPS).
Documentos de formato OPEN XML de Microsoft Office "12" (.docx).
Formatos de almacenamiento personalizados para su propio diseño de aplicación.
Basado en las API de empaquetado, XpsDocument se ha diseñado específicamente para almacenar documentos de WPF de contenido fijo. Un XpsDocument es un documento autónomo que se puede abrir en un visualizador, se muestra en un DocumentViewer control, enrutado a una cola de impresión o enviado directamente a una impresora compatible con XPS.
En las secciones siguientes se proporciona información adicional sobre las Package API y XpsDocument proporcionadas con WPF.
Componentes del paquete
Las API de empaquetado de WPF permiten organizar los datos y documentos de la aplicación en una sola unidad portátil. Un archivo ZIP es uno de los tipos de paquetes más comunes y es el tipo de paquete predeterminado proporcionado con WPF. Package es una clase abstracta de la que ZipPackage se implementa mediante una arquitectura de archivos XML y ZIP estándar abiertos. El Open método usa ZipPackage para crear y usar archivos ZIP de forma predeterminada. Un paquete puede contener tres tipos básicos de elementos:
Elemento | Descripción |
---|---|
PackagePart | Contenido de la aplicación, datos, documentos y archivos de recursos. |
PackageDigitalSignature | [Certificado X.509] para la identificación, autenticación y validación. |
PackageRelationship | Se ha agregado información relacionada con el paquete o una parte específica. |
Componentes del Paquete
A PackagePart ("part") es una clase abstracta que hace referencia a un objeto almacenado en .Package En un archivo ZIP, las partes del paquete corresponden a los archivos individuales almacenados en el archivo ZIP. ZipPackagePartproporciona la implementación predeterminada para objetos serializables almacenados en .ZipPackage Al igual que un sistema de archivos, las partes contenidas en el paquete se almacenan en un directorio jerárquico o en una organización de "estilo de carpeta". Con las API de empaquetado de WPF, las aplicaciones pueden escribir, almacenar y leer varios PackagePart objetos mediante un único contenedor de archivos ZIP.
PackageDigitalSignatures
Por seguridad, una PackageDigitalSignature ("firma digital") se puede asociar a partes dentro de un paquete. Un PackageDigitalSignature incorpora un [509] que proporciona dos características:
Identifica y autentica al originador del elemento.
Valida que el elemento no se ha modificado.
La firma digital no impide que se modifique una parte, pero se producirá un error en una comprobación de validación con la firma digital si la parte se modifica de alguna manera. Después, la aplicación puede tomar las medidas adecuadas; por ejemplo, bloquear la apertura de la parte o notificar al usuario que se ha modificado el elemento y no es seguro.
Relaciones de Paquete
Un PackageRelationship elemento ("relación") proporciona un mecanismo para asociar información adicional con el paquete o una parte del paquete. Una relación es una función a nivel de paquete que puede asociar información adicional a una parte sin modificar el contenido real de la misma. La inserción de nuevos datos directamente en el contenido de una parte no suele ser práctica en muchos casos:
No se conoce el tipo real del elemento y su esquema de contenido.
Incluso si se conoce, es posible que el esquema de contenido no proporcione un medio para agregar información nueva.
La parte puede estar firmada o cifrada digitalmente, excluyendo cualquier modificación.
Las relaciones de paquete proporcionan un medio reconocible para agregar y asociar información adicional con partes individuales o con todo el paquete. Las relaciones de paquete se usan para dos funciones principales:
Definir relaciones de dependencia de una parte a otra.
Definir relaciones de información que agregan notas u otros datos relacionados con el elemento.
proporciona PackageRelationship un medio rápido y reconocible para definir dependencias y agregar otra información asociada a una parte del paquete o al paquete en su conjunto.
Relaciones de dependencia
Las relaciones de dependencia se usan para describir las dependencias que una parte realiza en otras partes. Por ejemplo, un paquete puede contener un elemento HTML que incluya una o varias <etiquetas de imagen img> . Las etiquetas de imagen hacen referencia a imágenes que se encuentran como otras partes internas del paquete o externas al paquete (como accesibles a través de Internet). La creación de un PackageRelationship archivo HTML asociado a hace que la detección y el acceso a los recursos dependientes sea rápida y sencilla. Una aplicación de visor o explorador puede acceder directamente a las relaciones de elementos e iniciar inmediatamente el ensamblado de los recursos dependientes sin conocer el esquema ni analizar el documento.
Relaciones de información
De forma similar a una nota o anotación, PackageRelationship también se puede usar para almacenar otros tipos de información que se van a asociar a un elemento sin tener que modificar realmente el propio contenido del elemento.
Documentos XPS
El documento xml Paper Specification (XPS) es un paquete que contiene uno o varios documentos fijos junto con todos los recursos e información necesarios para la representación. XPS también es el formato de archivo de cola de impresión nativo de Windows Vista. XpsDocument Se almacena en un conjunto de datos ZIP estándar y puede incluir una combinación de componentes XML y binarios, como archivos de imagen y fuente. PackageRelationships se usan para definir las dependencias entre el contenido y los recursos necesarios para representar completamente el documento. El XpsDocument diseño proporciona una única solución de documentos de alta fidelidad que admite varios usos:
Leer, escribir y almacenar contenido y recursos de documentos fijos como un único archivo, portátil y fácil de distribuir.
Mostrar documentos con la aplicación XPS Viewer.
Salida de documentos en el formato de salida de cola de impresión nativa de Windows Vista.
Enrutar documentos directamente a una impresora compatible con XPS.
Consulte también
.NET Desktop feedback