我想在另一个圆圈中画一些圆圈,如下所示:
替代文字 http://img38.imageshack.us/img38/6379/circles.png
有没有办法告诉 RadialGradientBrush 不使用渐变而只使用固定颜色,所以我可以实现这一点?感谢您的任何提示!
(我想这可以使用 DrawingBrush 轻松完成,我只是想知道这是否也可以使用 RadialGradientBrush 完成)
我想在另一个圆圈中画一些圆圈,如下所示:
替代文字 http://img38.imageshack.us/img38/6379/circles.png
有没有办法告诉 RadialGradientBrush 不使用渐变而只使用固定颜色,所以我可以实现这一点?感谢您的任何提示!
(我想这可以使用 DrawingBrush 轻松完成,我只是想知道这是否也可以使用 RadialGradientBrush 完成)
如果你真的非常想这样做,你可以在你想要的偏移处重复你想要的颜色。
例如:
<RadialGradientBrush>
<GradientStop Offset="0" Color="Black" />
<GradientStop Offset="0.25" Color="Black" />
<GradientStop Offset="0.25" Color="Red" />
<GradientStop Offset="0.75" Color="Red" />
<GradientStop Offset="0.75" Color="Salmon" />
<GradientStop Offset="1" Color="Salmon" />
</RadialGradientBrush>
这样,它将从 0 到 0.25 填充黑色到黑色,从 0.25 到 0.75 填充红色到红色,从 0.75 到 1.0 填充鲑鱼到鲑鱼。
由于偏移量匹配,渐变没有“空间”进行混合。
如果您尝试制作绝对大小的“靶心”,请考虑在网格中叠加椭圆,而不是尝试使用画笔。
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Ellipse}">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
</Style>
</Grid.Resources>
<Ellipse Width="100"
Height="100"
Fill="Salmon" />
<Ellipse Width="50"
Height="50"
Fill="Red" />
<Ellipse Width="25"
Height="25"
Fill="Black" />
</Grid>
由于它们都在同一个网格中(默认情况下,列和行都是 0,但您可以设置它们),并且它们的水平和垂直对齐设置为拉伸,它们将简单地重叠。当然,一定要把最大的放在第一位。