带有折线和LinearGradientBrush的图表存在问题

时间:2010-04-10 14:55:38

标签: c# .net wpf

我有一个包含在画布中的折线图。我想设置折线的笔划从底部的颜色开始,到顶部的另一种颜色结束。我试过这个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>

这样它可以工作,但渐变的高度等于折线的高度。我的意思是,如果我有一条从画布底部到顶部的折线,渐变将应用于画布的整个高度。如果我有水平折线,则将渐变应用于其厚度 我希望梯度高度等于画布高度,与折线高度无关 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

渐变的开始和停止由StartPoint的{​​{1}}和EndPoint属性给出。您的示例显示LinearGradientBrush(0.5,1和0.5,0)内的值。您可以使用小于0或大于1的值,以便在形状之前或之后开始渐变。

但是使用相对值可能很难达到你想要的效果。使用相对值是因为PolyLine的{​​{1}}属性未明确设置。默认值为MappingMode,但可以设置为LinearGradientBrush

这样,您可以将RelativeToBoundingBox设置为(0,0),将Absolute设置为画布的宽度和高度,以获得您要查找的结果。

相关问题