我想知道,如何在GradientStop中的WPF中使用偏移量
<Grid.Background>
<LinearGradientBrush>
<GradientStopCollection>
<GradientStop Color="Black" Offset="0" />
<GradientStop Color="Red" Offset="1" />
</GradientStopCollection>
</LinearGradientBrush>
</Grid.Background>
答案 0 :(得分:1)
我很确定这是渐变完全切换到下一个颜色的点。如下所示:
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="Yellow" Offset="0.0" />
<GradientStop Color="Red" Offset="0.25" />
<GradientStop Color="Blue" Offset="0.75" />
<GradientStop Color="LimeGreen" Offset="1.0" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
从0到25%的矩形将从黄色流向红色。矩形的25%到75%将从红色流向蓝色。从75%到100%,矩形将呈蓝色至浅绿色。
因此,在您的示例中,颜色将从黑色变为红色,颜色在开始时仅为完全黑色,在结束时为完全红色。
答案 1 :(得分:0)
StartPoint的默认值为0,0,EndPoint的默认值为1,1。由于尚未指定StartPoint和EndPoint,因此隐式使用这些值。见http://msdn.microsoft.com/en-us/library/system.windows.media.lineargradientbrush(v=vs.110).aspx
最后,重要的是要注意画笔有一个BrushMappingMode属性,默认为RelativeToBoundingBox。由于您未指定,因此使用RelativeToBoundingBox并且offset确定端点之间颜色的位置。另一个选项是Absolute,它是EndPoint-StartPoint开始重要的地方。
使用BrushMappingMode RelativeToBoundingBox在偏移0.3处指定渐变停止时,您将在StartPoint和EndPoint之间指定30%线性渐变的颜色。