之前编写的一段程序,现在忘记怎么编写的了。先发文标记一下吧。
界面部分:
<lvc:CartesianChart x:Name="chart_LineEnergy" Margin="10,10,10,10" Grid.Row="1">
<lvc:CartesianChart.Series>
<lvc:ColumnSeries Values="{Binding ProcEachLineEnergy,StringFormat=N2}" ScalesYAt="0" Title="产线能耗"
MaxWidth="15" />
<lvc:LineSeries Values="{Binding ReferenceLineEnergy,StringFormat=N2}" ScalesYAt="0" Fill="Transparent" StrokeThickness="2" Stroke="Red" Title="产品能耗参考值" PointGeometrySize="7"/>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX >
<lvc:Axis Title="" Labels="{Binding LineProcTime}" Margin="0,20,0,0" Foreground="White">
<lvc:Axis.Separator>
<lvc:Separator Step="1" StrokeThickness="0"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis x:Name="Y0" MinValue="0" Foreground="White" MaxValue="150">
<lvc:Axis.Separator>
<lvc:Separator StrokeThickness="0" Stroke="Green"/>
</lvc:Axis.Separator>
</lvc:Axis>
<!--<lvc:Axis Position="RightTop" IsMerged="True" MaxValue="150" MinValue="0" >
<lvc:Axis.Separator>
<lvc:Separator StrokeThickness="1" IsEnabled="True"/>
</lvc:Axis.Separator>
</lvc:Axis>-->
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
CS部分:
var mapper = new LiveCharts.Configurations.CartesianMapper<double>()
.X((value, index) => index)
.Y((value) => value)
.Fill((v, i) =>
{
if (System.Math.Abs(v- reference) > 30)
return Brushes.Red;
else
return Brushes.Cyan;
});
chart_LineEnergy.Series[0].Configuration = mapper;
}