我在使用名为AngleGradientBrush
的自定义渐变笔刷来绘制Shape
时遇到问题。
要创建这个新的Gradient Brush
,我使用了以下命令:http://wpfkorea.tistory.com/169
当我仅使用AngleGradientBrush.cs
中的代码来使任何形状具有圆形颜色时,它的效果都非常好。
问题在于,如果执行此操作,对于LinearGradientBrush
或RadiantGradientBrush
来说是可行的:
<Ellipse Name="FourDirectionsEllipse"
StrokeThickness="{Binding StrokeThiknessVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Width="{Binding ElementWidthVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Height="{Binding ElementHeightVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Opacity="{Binding OpacityFourDirectionsEllipseVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding EnableFourDirectionsEllipseVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Center" >
<Ellipse.Stroke>
<LinearGradientBrush>
<GradientStop Color="{Binding DownColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.125"/>
<GradientStop Color="{Binding RightColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.125"/>
<GradientStop Color="{Binding RightColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.375"/>
<GradientStop Color="{Binding UpColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.375"/>
<GradientStop Color="{Binding UpColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.628"/>
<GradientStop Color="{Binding LeftColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.628"/>
<GradientStop Color="{Binding LeftColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.878"/>
<GradientStop Color="{Binding DownColorVM, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Offset="0.878"/>
</LinearGradientBrush>
</Ellipse.Stroke>
</Ellipse>
颜色绑定没有问题,因此我可以更改每个GradientStop
的颜色。
但是,如果我使用<angleGradientBrushSample:AngleGradientBrush GradientDetail="1"> <GradientStop Color=...>...</angleGradientBrushSample:AngleGradientBrush>
,则绑定无效。
我希望这不是仅针对我的代码的特定问题,但我认为当某些人尝试定义新的GradientBrush
时,它也会有所帮助。
问题与我提到的网站中的代码有关吗?我需要添加一些东西来处理新颜色吗?