DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 105, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

[WPF] Fixed documents VS Flow documents

Un grande passo in avanti che WPF offre oltre alle note features built-in relative al packaging (XPS, OpenXML, formati custom) ed alla security, è il supporto alla visualizzazione ed alla fruizione dei contenuti. Ad oggi, WPF divide i documenti in due grandi categorie in base all'utilizzo a cui sono destinati: "fixed documents" e "flow documents".

Fixed documents: sono utilizzati in applicazioni WYSIWYG, ovvero indipendenti dalla risoluzione dello schermo o dal dispositivo di stampa. Parliamo quindi di scenari in cui è fondamentale la fedeltà nei confronti del design della pagina originale (es. applicazioni word processing, form layout etc.), in quanto viene mantenuto il preciso posizionamento degli elementi del contenuto indipendentemente dal device di visualizzazione/stampa. Il controllo che WPF ci mette a disposizione per i fixed documents è il potentissimo DocumentViewer , il quale renderizza un'interfaccia grafica molto intuitiva che ci permette di accedere al documento (in sola lettura), godendo (in senso stretto ;)) delle comuni funzionalità di anteprima di stampa, zoom, ricerca testo (!!!) e impaginazione.
Nel seguente esempio viene mostrato come sia banale associare programmaticamente un documento XPS ad un DocumentViewer.

using System.Windows.Xps.Packaging;
using System.IO;

XpsDocument xpsDoc = new XpsDocument(@"C:\test.xps", FileAccess.Read);
documentViewer.Document = xpsDoc.GetFixedDocumentSequence();


Flow documents: servono ad ottimizzare la visualizzazione e la lettura, quindi intervengono per facilitare la fruizione di contenuti. Differentemente dai fixed documents, i flow documents aggiustano dinamicamente ("reflow") il contenuto in base alle dimensioni della finestra, alla risoluzione del dispositivo, alle preferenze dell'utente etc... proprio come avviene per una comune pagina web. Ovviamente, anche in questo caso abbiamo accesso alle utilissime features di ricerca nonché all'adattamento della modalità di lettura, al ridimensionamento dei font etc.
Esistono diversi controlli per visualizzare un flow document, che citiamo dal più 'smart' al più 'lazy': FlowDocumentReader, FlowDocumentPageViewer, FlowDocumentScrollViewer... e l'immancabile RichTextBox.
Divertiamoci con un esempio: si parte da un FlowDocument del tipo...


<
FlowDocument>
 
<Paragraph>
   ...bla..bla...
 
</Paragraph>
  ...
</FlowDocument>
      
... e tramite un semplice 'embedding' in uno dei controlli dei sopracitati, otteniamo diversi rendering/comportamenti raffigurati qua sotto.

FlowDocumentReader
FlowDocumentPageViewer
FlowDocumentScrollViewer
RichTextBox

 

Technorati tags:  WPF,  XPS

Print | posted on mercoledì 16 aprile 2008 23:38 | Filed Under [ WPF ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET