我有一个包含在画布中的折线图。我想设置折线的笔划从底部的颜色开始,到顶部的另一种颜色结束。我试过这个xaml:
<Polyline StrokeThickness="2">
<Polyline.Stroke>
<LinearGradientBrush StartPoint="0.5,1" EndPoint="0.5,0">
<GradientStop Color="Blue" Offset="0" />
<GradientStop Color="Cyan" Offset="1" />
</LinearGradientBrush>
</Polyline.Stroke>
</Polyline>
这样它可以工作,但渐变的高度等于折线的高度。我的意思是,如果我有一条从画布底部到顶部的折线,渐变将应用于画布的整个高度。如果我有水平折线,则将渐变应用于其厚度 我希望梯度高度等于画布高度,与折线高度无关 我怎样才能做到这一点?
答案 0 :(得分:3)
渐变的开始和停止由StartPoint
的{{1}}和EndPoint
属性给出。您的示例显示LinearGradientBrush
(0.5,1和0.5,0)内的值。您可以使用小于0或大于1的值,以便在形状之前或之后开始渐变。
但是使用相对值可能很难达到你想要的效果。使用相对值是因为PolyLine
的{{1}}属性未明确设置。默认值为MappingMode
,但可以设置为LinearGradientBrush
。
这样,您可以将RelativeToBoundingBox
设置为(0,0),将Absolute
设置为画布的宽度和高度,以获得您要查找的结果。