XAMLの場合:
<ResourceDictionary>
<Color x:Key="BrushColor1">Red</Color>
<Color x:Key="BrushColor2">Black</Color>
<LinearGradientBrush x:Key="GradientBrush1" StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="{DynamicResource BrushColor2}" Offset="0" />
<GradientStop Color="{DynamicResource BrushColor1}" Offset="1" />
</LinearGradientBrush>
</ResourceDictionary>
C#の場合:
public void CreateTestRect()
{
Rectangle exampleRectangle = new Rectangle();
exampleRectangle.Width = 150;
exampleRectangle.Height = 150;
exampleRectangle.StrokeThickness = 4;
exampleRectangle.Margin = new Thickness(350);
ResourceDictionary resources = this.Resources;
resources["BrushColor1"] = Colors.Pink;
resources["BrushColor2"] = Colors.RoyalBlue;
Brush brush =(Brush)this.FindResource("GradientBrush1");
exampleRectangle.Fill = brush;
canvas.Children.Insert(0, exampleRectangle);
}
C#のランタイムでこれらの色要素を変更する方法。LinearGradientBrushは動的に変更する必要がありますか?
私はこのようなことをしたいです:
(Color)(this.FindResource("BrushColor1")) = Colors.Pink;
しかし、私は失敗しました。