Ich verwende das MV-VM-Muster in WPF, und ich habe einen Hintergrundpinsel, den ich ziemlich oft verwenden werde, und ich möchte es in verschieben ein gemeinsames ResourceDictionary.Aktivieren Sie die Datenbindung in freigegebenen WPF-Ressourcen in einem ResourceDictionary
Das einzige Problem ist, dass der Pinsel eine Farbe verwendet, die er über Databinding in seinen gehosteten Kontext bekommt.
Gibt es trotzdem ich kann den Pinsel in ein ResourceDictionary bewegen und immer noch den Wert finden, den es braucht?
Bürste:
<RadialGradientBrush>
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterX="0.5"
CenterY="0.5"
ScaleX="2.3"
ScaleY="2.3" />
<TranslateTransform X="-0.3"
Y="-0.3" />
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Color="{Binding Path=BackdropColor}"
Offset="1.2" />
<GradientStop Color="#FFFFFFFF"
Offset="-0.1" />
</RadialGradientBrush>
Nachdem es heraus zu einem Resource Refactoring und Hinzufügen eines Schlüssels, rief ich sie als solche:
<StackPanel Grid.Row="0"
Margin="0,0,0,0"
Orientation="Horizontal"
Background="{DynamicResource BackdropRadGradBrush}">
Aber dies führte in dieser Ausgabe im Debugger :
System.Windows.Data Fehler: 2: Kann nicht finden, FrameworkElement oder FrameworkContentElement für Zielelement. BindingExpression: Pfad = Hintergrundfarbe; Datenelement = null; Zielelement ist 'GradientStop' (HashCode = 16001149); Zieleigenschaft ist 'Farbe' (Typ 'Farbe')
Das klingt wie es könnte funktionieren, wenn ich einen Aufruf von DynamicResource verwendet ... dann in der Eigenschaft StackPanels.Resources vielleicht angegeben? Ich werde testen und sehen, was ich finden kann. Nie zu spät, um eine Frage zu SO zu beantworten! – Nidonocu