Startseite  Inhaltsverzeichnis  <<  >>

Kapitel 8 - Dokumentverwaltung

8.1 Grundlagen

Avalon unterstützt direkt durch Komponenten das Anzeigen von formatieren Text. Dieser Text kann auf Seiten verteilt werden. Zusätzlich ist die Integration einer Navigation zwischen den Textseiten möglich. Basis dieser Funktionalität ist das <PageViewer>-Element, dass unter anderem Zooming und Scrolling unterstützt.

Der PageViewer benötigt eine externe XML-Datei als Source-Basis. Um direkt Text anzuzeigen, kann ein Document-Element genutzt werden.



Beispiel: Documents1.xaml

<Window xmlns="http://schemas.microsoft.com/2003/xaml" 
Background="LightBlue" Width="400" Height="300">
  <DockPanel Margin="20,20,20,20">
    <PageViewer DockPanel.Dock="Fill" Source="Data.xaml" />
  </DockPanel>
</Window>
Dokumentdaten: Data.xaml

<TextPanel xmlns="http://schemas.microsoft.com/2003/xaml/">
  Solem aki nudi repuwi widm farusi gemlin kanibu blostra
  kemni de ratir tuzibu. <Italic>Solem aki nudi repuwi
  kemni de ratir tuzibu.</Italic> Solem aki nudi repuwi
  kemni de ratir tuzibu.
</TextPanel>
Zur Darstellung eines Dokuments bietet Avalon zwei vordefinierte Layouttypen an. Fixed-formatierte Dokumente werden immer gleich dargestellt (Auflösung etc.).  Adaptiv-Flow-Dokumente verwenden spezielles Markup um die Darstellung für das jeweilige Ausgabemedium zu optimieren. Dazu muss der Dokumentinhalt in ein AdaptiveMetricsContext-Element eingefügt werden.

8.2 Das Adaptiv-Flow-Format

Über HTML kann ein Text bereits sehr gut definiert werden. Allerdings ist später nicht sicher, wie seine Darstellung erfolgt, da dies von den Browsereigenschaften und der Bildschirmauflösung abhängig ist. Die durch HTML und CSS vordefinierten Formate sind letztendlich fix, d.h. besitzen eine feste Darstellungsform.

Das Hauptelement ist AdaptiveMetricsContext, welches drei wichtige Attribute besitzt.

Eigenschaft Beschreibung
ColumnPreference
Gültige Werte sind Single (0), Low (1), Medium (2), High (3) und Maximum (4). Sie legen fest, ob lieber mehrere schmale oder wenige breite Spalten verwendet werden sollen.
MarginPreference Beschreibt die relativen Ränder in einem Dokument. Die Werte dürfen zwischen 0.0 und 0.4 liegen. Der Wert 0.1 ist der Standardwert.
FontFamily
FontSize
LineHeightScale

Inline-Tags

AccessKey
Bold
Inline
Italic
SmallCaps
Subscript
Superscript
Underline

Block-Tags

Block
Heading
List
ListElementItem
Note
Paragraph
Section
Table

Special

LineBreak
PageBreak


8.3 Das Fixed-Format

Eine Seite wird mit einem festen Format über Vektoren definiert.





<Document xmlns="http://schemas.microsoft.com/2003/xaml">
  <FixedPanel PageHeight="300" PageWidth="400">
    <PageContent>
      <FixedPage Background="White">
              <Text Canvas.Top="10" Canvas.Left="10" >Hello</Text>
              <Canvas>
                 <Text>Hello</Text>
              </Canvas>
              <Image Canvas.Top="120" Canvas.Left="20" Source="../images/beispiel1.jpg" />
              <Ellipse Width="200" Height="100" Stroke="Black" />
              <Line X1="10" X2="100" Y1="10" Y2="100" Stroke="Black" />
              <Path Data="M 10,50 L 200,70" Stroke="Red" />
      </FixedPage>
    </PageContent>

    <PageContent>
      <FixedPage Background="White">
        <!-- weitere Grafikprimitive -->
      </FixedPage>
    </PageContent>
  </FixedPanel>
</Document>