Laden...

UserControl mit Property für Farbwechsel

Erstellt von d.gierse vor 11 Jahren Letzter Beitrag vor 11 Jahren 767 Views
D
d.gierse Themenstarter:in
115 Beiträge seit 2006
vor 11 Jahren
UserControl mit Property für Farbwechsel

Hallo,

ich bin dabei ein UserControl zu erstellen, das bei Eintreten eines bestimmten Ereignisses die Farbe einer seiner Flächen ändert. Diese Farbe ist defaultmäßig z.B. Grün. Der Benutzer soll aber zur Designzeit (nicht zur Laufzeit!!) über eine Property angeben können, welche Farbe das ist.
Das Control wird Teil einer Libary, die in mehreren anderen Projekten verwendet werden kann.

Den Farbwechsel mache ich momentan mit dem VisualStateManager (weil das Control auch in Silverlight verwendet wird) und einer ColorAnimation. Im VisualStateManager kann ich aber keine DependencyPropertys für die Zielfarbe binden, da die Objekte unveränderlich sein müssen.

Jetzt habe ich 2 Ideen, die mich aber noch nicht ganz zufrieden stellen:

  1. Ich definiere im XAML die farbigen Flächen doppelt und binde die Farbe der hinteren Fläche an meine Property. Im VisualStateManager animiere ich dann die Opacity des vorderen Elements. Geht, aber ist unschön, weil alle grafischen Elemente doppelt definiert werden müssen.

  2. Ich baue jedes mal, wenn dich die Property für die Zielfarbe ändert, im Codebehind das Storyboard für den VisualState neu auf mit der entsprechenden Farbe (Umständlich, Animationen erstellen wir auch viel mit Blend im XAML und ich möchte nicht alles umschreiben)

Hat jemand noch einen besseren Lösungsvorschlag?