C# 带有多段线和LinearGradientBrush的图表出现问题
我有一个包含在画布中的多段线的图形。我想设置多段线的笔划,从底部的一种颜色开始,到顶部的另一种颜色结束。我尝试使用这个xaml:C# 带有多段线和LinearGradientBrush的图表出现问题,c#,.net,wpf,C#,.net,Wpf,我有一个包含在画布中的多段线的图形。我想设置多段线的笔划,从底部的一种颜色开始,到顶部的另一种颜色结束。我尝试使用这个xaml: <Polyline StrokeThickness="2"> <Polyline.Stroke> <LinearGradientBrush StartPoint="0.5,1" EndPoint="0.5,0"> <GradientStop Color="Blue" Offset="0" />
<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>
通过这种方式,它可以工作,但渐变的高度等于多段线的高度。我的意思是,如果我有一条从画布底部到顶部的多段线,梯度应用于画布的整个高度。如果改为使用水平多段线,则渐变将应用于其厚度。我希望渐变高度与画布高度相等,独立于多段线高度。
如何实现这一点?渐变的开始和停止由
LinearGradientBrush
的StartPoint
和EndPoint
属性给出。您的示例显示了多段线内的值(0.5,1和0.5,0)。可以使用小于0或大于1的值,以便在形状之前开始渐变,或在形状之后结束渐变
但是使用相对值可能很难满足您的需求。使用相对值是因为未明确设置LinearGradientBrush
的MappingMode
属性。默认值为相对边界框
,但可以设置为绝对值
这样,您可以将起始点设置为(0,0),将端点设置为画布的宽度和高度,以获得所需的结果