Ich habe eine Abhängigkeitseigenschaft (Foreground) für ein benutzerdefiniertes Steuerelement, das von Control erbt. Wenn ich das Steuerelement lade, möchte ich sehen, ob der Benutzer die Abhängigkeitseigenschaft festgelegt hat oder ob sie ihren Standardwert verwendet, bevor ich den Wert für sie festlege. Das Problem ist ein wenig komplizierter als das hier:Silverlight 2.0: Ermitteln, ob eine Abhängigkeitseigenschaft festgelegt ist, bevor sie geändert wird
Das Steuerelement befindet sich in einer benutzerdefinierten Steuerelementbibliothek, die ein Benutzer ihrem Projekt hinzufügt. Wenn sie ihr Projekt einrichten, habe ich die Möglichkeit, eine Zeile zu ihrer app.xaml-Datei mit einem bestimmten x: -Schlüssel hinzuzufügen, der die Einstellungen enthält, die ich beim Festlegen der Standardwerte für meine Steuerelemente gelesen habe. Wenn sie den Wert jedoch entweder in Code oder in Xaml festlegen, möchte ich den Wert nicht mit diesem globalen Wert festlegen. Hier sind ein paar Fälle visualisieren zu helfen, was ich spreche:
Der Benutzer ein Steuerelement aus meiner Bibliothek erstellt und legt sie auf ihrer Seite. Sie setzen dann den Vordergrund auf grün. Ich möchte, dass der Wert des Vordergrunds für dieses Steuerelement grün ist.
Der Benutzer fügt seiner app.xaml eine spezielle Zeile hinzu, die besagt, dass alle Steuerelemente einer bestimmten Art einen roten Vordergrund haben sollen. Ich möchte den Wert des Vordergrunds aller Steuerelemente dieser Art rot sein.
Der Benutzer fügt seiner app.xaml eine spezielle Zeile hinzu, die besagt, dass alle Steuerelemente einer bestimmten Art einen roten Vordergrund haben sollen. Sie setzen dann den Wert des Vordergrunds eines einzelnen Steuerelements (in XAML) auf Gelb. Ich möchte, dass der Wert des Vordergrunds aller Steuerelemente dieser Art rot ist, mit Ausnahme der Farbe, für die sie sonst gelb sind.
Wenn die Steuerung laden, mag ich die Abhängigkeitseigenschaft lesen, um zu sehen, ob sie den Wert eingestellt haben, oder wenn es der Standardwert ist die im Stil definiert ist. Wenn es der Standardwert ist, möchte ich dann ihre spezielle Zeile aus der app.xaml-Datei lesen und den Vordergrund auf diese Farbe setzen.