引用的dll: LiveCharts.Wpf.dll LiveCharts.dll Arthas.dll
下载地址:https://download.csdn.net/download/m0_37137902/12560883
界面代码:
xmlns:Metro="clr-namespace:Arthas.Controls.Metro;assembly=Arthas"
xmlns:ms="clr-namespace:Mindscape.WpfElements.Charting;assembly=Mindscape.WpfElements"
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
<Grid Grid.Column="0" Margin="30,0,0,10">
<Border CornerRadius="20" Margin="0" BorderThickness="0" BorderBrush="Red" Opacity="1">
<Border.Effect>
<DropShadowEffect ShadowDepth="2" Color="#E0FFFF" Direction="90" BlurRadius="20"/>
</Border.Effect>
<Border Background="White" Opacity="10" CornerRadius="10,10,10,10"/>
</Border>
<Grid >
<Grid.RowDefinitions >
<RowDefinition Height="52"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<TextBlock x:Name="txt_eachCollege" Text="学院录取人数统计"
Foreground="Black"
VerticalAlignment="Center"
HorizontalAlignment="Left"
Margin="20,0,0,0"
FontSize="16"
/>
</Grid>
<Grid Grid.Row="1" Margin="10,10,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<Metro:MetroSwitch x:Name="chex_boy" Content="男" IsChecked="{Binding MariaSeriesVisibility}"/>
<Metro:MetroSwitch x:Name="chex_gril" Content="女" Margin="10,0,0,0" IsChecked="{Binding CharlesSeriesVisibility}"/>
<Metro:MetroSwitch x:Name="chex_all" Content="总数" Margin="10,0,0,0" IsChecked="{Binding JohnSeriesVisibility}"/>
</StackPanel>
<lvc:CartesianChart Grid.Row="1" x:Name="CartesianChart_sexOfColleges" Hoverable="False">
<lvc:CartesianChart.Series>
<lvc:ColumnSeries Title="男" Name="colBoy" Width="1" Values="10,10,2,9,3,10,,11,10,16"
Visibility="{Binding MariaSeriesVisibility, Converter={StaticResource bvc}}"
MaxWidth="1" ColumnPadding="2"/>
<lvc:ColumnSeries Title="女" Name="colgril" Width="1" Values="6,2,6,3,8,5,8,9,6"
Language="zh-CN"
Visibility="{Binding CharlesSeriesVisibility, Converter={StaticResource bvc}}"
MaxWidth="1" ColumnPadding="2"/>
<lvc:ColumnSeries Title="总数" Name="colAll" Width="1" Values="16,12,16,5,14,16,13,16,22"
Visibility="{Binding JohnSeriesVisibility, Converter={StaticResource bvc}}"
MaxWidth="1" ColumnPadding="2"/>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX>
<lvc:Axis x:Name="sexChartLabels"
Foreground="Gray"
AllowDrop="True"
LabelsRotation="130"
Labels="January, February, March, April, May">
<lvc:Axis.Separator>
<lvc:Separator Step="1" ></lvc:Separator>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
</lvc:CartesianChart>
</Grid>
<Line X1="0" Y1="50" X2="900" Y2="50" StrokeEndLineCap="Round" StrokeThickness="1">
<Line.Stroke>
<LinearGradientBrush EndPoint="0,0.5" StartPoint="0,0">
<GradientStop x:Name="line_eachCollege" Color="Gray"/>
<GradientStop Offset="100"/>
</LinearGradientBrush>
</Line.Stroke>
</Line>
</Grid>
</Grid>
后台赋值:
var boyvals = new List<double>();
var grilvals = new List<double>();
var allvals = new List<double>();
foreach (var item in dicXySex)
{
boyvals.Add(item.Value[0]);
grilvals.Add(item.Value[1]);
allvals.Add(item.Value[2]);
}
colBoy.Values = new ChartValues<double>(boyvals);
colgril.Values = new ChartValues<double>(grilvals);
colAll.Values = new ChartValues<double>(allvals);