WPF:没有梯度的径向梯度笔刷?
我想在另一个圆上画一些圆,像这样: 有没有办法告诉RadialGradientBrush不要使用渐变,只使用固定的颜色,这样我就可以做到这一点?谢谢你的提示WPF:没有梯度的径向梯度笔刷?,wpf,radial-gradients,Wpf,Radial Gradients,我想在另一个圆上画一些圆,像这样: 有没有办法告诉RadialGradientBrush不要使用渐变,只使用固定的颜色,这样我就可以做到这一点?谢谢你的提示 (我想这可以用画笔轻松完成,我只是想知道这是否也可以用RadialGradientBrush完成)如果你真的真的想这么做,你可以在你想要的偏移处重复你想要的颜色 例如: <RadialGradientBrush> <GradientStop Offset="0" C
(我想这可以用画笔轻松完成,我只是想知道这是否也可以用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填充鲑鱼到鲑鱼
由于偏移匹配,因此没有渐变混合的“空间”。如果您真的非常想这样做,可以在所需偏移处重复所需的颜色 例如:
<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填充鲑鱼到鲑鱼
由于偏移匹配,梯度的混合空间没有“空间”。
< P>如果你试图做一个绝对大小的“布尔”,考虑在网格中叠加椭圆,而不是尝试使用画笔。<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,但您可以设置它们),并且将它们的水平和垂直对齐设置为“拉伸”,因此它们将简单地重叠。当然,首先要把最大的一个放进去。 如果你想做一个绝对大小的“牛仔”,考虑在一个网格中省略椭圆,而不是尝试使用一个画笔。p>
<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,但您可以设置它们),并且将它们的水平和垂直对齐设置为“拉伸”,因此它们将简单地重叠。当然,一定要把最大的放在第一位。谢谢你的提示,效果很好!尺寸/长度/宽度。。梯度是相对的,有没有办法用独立于设备的单位来指定它,例如,黑圈应该是30个单位?好的,有Brush.MappingMode,你可以将它设置为绝对,但我不知道如何使用它。。。有人可以发布一些示例代码吗?谢谢有关格式方面的原因,请参见下一个答案(请随意选择一个作为答案)。:)谢谢你的提示,效果很好!尺寸/长度/宽度。。梯度是相对的,有没有办法用独立于设备的单位来指定它,例如,黑圈应该是30个单位?好的,有Brush.MappingMode,你可以将它设置为绝对,但我不知道如何使用它。。。有人可以发布一些示例代码吗?谢谢有关格式方面的原因,请参见下一个答案(请随意选择一个作为答案)。:)再次感谢您的回复!仍然想知道absolute Brush.MappingMode是如何工作的。我想我会为此写一篇新文章。哦,我会选择一个解决方案作为答案,谢谢!映射模式用于起始点和端点。再见,再次感谢您的回复!仍然想知道absolute Brush.MappingMode是如何工作的。我想我会为此写一篇新文章。哦,我会选择一个解决方案作为答案,谢谢!映射模式用于起始点和端点。看见