Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF:没有梯度的径向梯度笔刷?_Wpf_Radial Gradients - Fatal编程技术网

WPF:没有梯度的径向梯度笔刷?

WPF:没有梯度的径向梯度笔刷?,wpf,radial-gradients,Wpf,Radial Gradients,我想在另一个圆上画一些圆,像这样: 有没有办法告诉RadialGradientBrush不要使用渐变,只使用固定的颜色,这样我就可以做到这一点?谢谢你的提示 (我想这可以用画笔轻松完成,我只是想知道这是否也可以用RadialGradientBrush完成)如果你真的真的想这么做,你可以在你想要的偏移处重复你想要的颜色 例如: <RadialGradientBrush> <GradientStop Offset="0" C

我想在另一个圆上画一些圆,像这样:

有没有办法告诉RadialGradientBrush不要使用渐变,只使用固定的颜色,这样我就可以做到这一点?谢谢你的提示


(我想这可以用画笔轻松完成,我只是想知道这是否也可以用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是如何工作的。我想我会为此写一篇新文章。哦,我会选择一个解决方案作为答案,谢谢!映射模式用于起始点和端点。看见