WPFでMV-VMパターンを使用していますが、かなり頻繁に使用する背景ブラシがあり、それを共有ResourceDictionaryに移動したいと思います。
唯一の問題は、ブラシがホストされたコンテキストへのデータバインディングを介して取得した色を使用することです。
とにかく、ブラシをResourceDictionaryに移動しても、必要な値を見つけることができますか?
ブラシ:
<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>
ResourceDictionaryにリファクタリングしてキーを追加した後、次のように呼び出しました。
<StackPanel Grid.Row="0"
Margin="0,0,0,0"
Orientation="Horizontal"
Background="{DynamicResource BackdropRadGradBrush}">
しかし、これにより、デバッガーで次の出力が生成されました。
System.Windows.Dataエラー:2:ターゲット要素の支配的なFrameworkElementまたはFrameworkContentElementが見つかりません。BindingExpression:Path = BackgroundColor; DataItem = null; ターゲット要素は'GradientStop'(HashCode = 16001149); ターゲットプロパティは「Color」(タイプ「Color」)です