Die Anbindung eines Storyboards an einen Auslöser geschieht in
XAML über eine Form der Datenbindung, erkennbar an den geschwungenen
Klammern. Diese Anbindung wird erst zur Laufzeit
ausgewertet und kann zu Fehlern führen, die Expression Blend
nicht orten kann. Wenn Sie beispielsweise manuell den Namen
eines nicht existierenden Storyboards einsetzen, weist Sie Expression
Blend nicht auf den Fehler hin und es erscheint eine nichtssagende
Fehlermeldung beim Versuch, die Anwendung auszuführen.
Abhilfe schafft Visual Studio mit dem integrierten Debugger.
Führen Sie die Anwendung im Debug-Modus aus Visual Studio
heraus aus, so wird Ihnen Visual Studio sagen, wo der Fehler liegt.
Zentralisieren von Eigenschaftswerten in Ressourcen
In Kapitel 4 und Kapitel 5 dieses Buches werden wir im Detail
die Notwendigkeit für konsistentes Design eines User Interface
erläutern. Dieses Kapitel beschäftigt sich mit der technologischen
Unterstützung, die Sie beim Einhalten einer Durchgängigkeit von
Textformatierungen, Farben und sonstigen Eigenschaften in Anspruch
nehmen können.
Konvertieren eines lokalen Wertes in eine
wiederverwendbare Ressource
Um immer wieder auf zentrale Eigenschaftswerte wie Farben,
Größen und Abstände zurückgreifen zu können, werden sie in
sogenannte Ressourcen ausgelagert. Diese Ressourcen können Sie in
WPF auch in separate Dateien auslagern und sie somit wie die aus
dem Internet bekannten Stylesheets einsetzen. In Silverlight gibt es
eine fest definierte Ressourcendatei, die Sie verwenden können.
Um den im vorherigen Abschnitt »Animation und Auslöser in
WPF« verwendeten Farbverlauf zentral in einer Ressource abzulegen,
gehen Sie wie folgt vor:
Vollziehen Sie die im früheren Abschnitt »Animation und Auslöser
in WPF« dokumentierten Schritte: Erstellen Sie ein neues
WPF-Projekt, fügen Sie ein Rechteck in das LayoutRootein,
färben Sie die Füllung des Rechtecks mit einern Farbverlauf. Die
Erstellung der Animation ist nicht notwendig, da sie durch die
folgende Vorgehensweise ohnehin gelöscht wird.
Öffnen Sie das Eigenschaftenpanel, wenn noch nicht geschehen.
Klicken Sie auf den Button Pinsel in Ressource konvertieren rechts
unten im Bereich Pinsel des Eigenschaftenpanels (siehe Abbildung
3.25). Ein kleines Fenster öffnet sich und bittet Sie um die
Eingabe eines Namens und des Speicherorts für diesen Wert.
Übernehmen Sie die Voreinstellungen und speichern Sie so den
Farbverlauf unter dem voreingestellten Namen Brushl und dem
Speicherort Dieses Dokument.
Abbildung 3.25: Erstellen einer Ressource
Der Speicherort hat eine wichtige Bewandtnis, denn er definiert,
von wo der abgelegte Wert in Ihrer Anwendung erreichbar ist!
Mit der hier verwendeten Speicherung im aktuellen Dokument ist
der Wert aus einem anderen Dokument nicht erreichbar. Möchten
Sie global für Ihre Anwendung verfügbare Ressourcen ablegen, so
sollten Sie sie in einer separaten Ressourcendatei speichern. Eine
solche Ressourcendatei können Sie auch im gerade erörterten
Fenster neu erstellen.
Sollten Sie die im Abschnitt »Animation und Auslöser in WPF«
erstellte Farbanimation des Rechtecks übernommen haben, so
erscheint jetzt ein Warnhinweis, der besagt, dass eine Animation
gelöscht wurde. Das liegt daran, dass in Ressourcen abgelegte
Farbwerte nicht herkömmlich animiert werden können. Außerdem
erscheint hinter der Farbe im Eigenschaftenpanel ein kleiner
grüner Punkt, der anzeigt, dass der Wert durch eine Ressource
gegeben wird, und es wird automatisch das Ressourcenpanel
geöffnet. Ihre Ansicht sollte sich jetzt ähnlich der Abbildung 3.26
darstellen.