官网:http://www.visifire.com/
一直没找到好的中文文档,希望有的这个的可以发个我!
效果图:
前台代码:
<UserControl x:Class="Text_Visifire.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:vc="clr-namespace:Visifire.Charts;assembly=SLVisifire.Charts" mc:Ignorable="d" xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" d:DesignWidth="1200" d:DesignHeight="680"> <Grid x:Name="LayoutRoot"> <StackPanel Orientation="Horizontal" > <!--第一個Chart--> <vc:Chart Grid.Row="0" Name="chtChartOne" Width="390"> <vc:Chart.AxesY> <!--Y間隔--> <vc:Axis Interval="20" Suffix="%"/> </vc:Chart.AxesY> </vc:Chart> <StackPanel> <Grid x:Name="ChartPanel" Height="250" Width="500"> </Grid> <Grid x:Name="ChartLine" Height="300" Width="500"> </Grid> </StackPanel> <StackPanel> <Grid x:Name="Chart1" Height="250" Width="500"> </Grid> <Grid x:Name="Chart2" Height="300" Width="500"> </Grid> </StackPanel> </StackPanel> <!--第二個Chart--> <!--<vc:Chart Grid.Row="1" Name="chtChartTwo"> <vc:Chart.AxesY> <vc:Axis Interval="20" Suffix="%"/> </vc:Chart.AxesY> <vc:Chart.Series> <vc:DataSeries RenderAs="Column" LabelEnabled="true" LabelStyle="OutSide" Margin="418,-104,-418,104"> <vc:DataSeries.DataPoints> <vc:DataPoint AxisXLabel="18-29歲" YValue="31.2"/> <vc:DataPoint AxisXLabel="30-39歲" YValue="23.3"/> <vc:DataPoint AxisXLabel="40-49歲" YValue="30.9"/> <vc:DataPoint AxisXLabel="50-64歲" YValue="35.6"/> <vc:DataPoint AxisXLabel="65歲以上" YValue="7.6"/> <vc:DataPoint AxisXLabel="65歲以上" YValue="27.6"/> <vc:DataPoint AxisXLabel="65歲以上" YValue="2.6"/> <vc:DataPoint AxisXLabel="65歲以上" YValue="27.6"/> <vc:DataPoint AxisXLabel="65歲以上" YValue="27.6"/> </vc:DataSeries.DataPoints> </vc:DataSeries> </vc:Chart.Series> </vc:Chart>--> </Grid> </UserControl>
后台代码:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Windows.Navigation; using Visifire.Charts; namespace Text_Visifire { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); //柱状图 InitPage(); //饼图 ShowPie(); //折线图 ShowLine(); //雷达图 ShowRadar(); //气泡图 ShowBubble(); } #region 柱状图示例 public void InitPage() { chtChartOne.View3D = true; Title title = new Title(); title.Text = "柱状图的标题内容"; chtChartOne.Titles.Add(title); //統計資料列 DataSeries ds = new DataSeries(); //柱状类型 ds.RenderAs = RenderAs.StackedColumn; //顯示Lable ds.LabelStyle = LabelStyles.OutSide; ds.LabelEnabled = true; //欄 ds.DataPoints.Add(new DataPoint() { AxisXLabel = "18-29歲", YValue = 20.8 }); ds.DataPoints.Add(new DataPoint() { AxisXLabel = "30-39歲", YValue = 28.2 }); ds.DataPoints.Add(new DataPoint() { AxisXLabel = "40-49歲", YValue = 26.5 }); ds.DataPoints.Add(new DataPoint() { AxisXLabel = "50-64歲", YValue = 18.9 }); ds.DataPoints.Add(new DataPoint() { AxisXLabel = "65歲以上", YValue = 17.2 }); chtChartOne.Series.Add(ds); } #endregion #region 饼状图示例 public void ShowPie() { Chart chart = new Chart(); chart.Width = 450; chart.Height = 300; chart.View3D = true; //3D效果 //饼状图的标题设置 Title title = new Visifire.Charts.Title(); title.Text = "这是一个测试用的3D饼状图"; chart.Titles.Add(title); DataSeries dataSeries = new DataSeries(); dataSeries.RenderAs = RenderAs.Pie; dataSeries.LegendText = ""; DataPoint point; int numberOfDataPoints = 6; Random random = new Random(); for (int i = 0; i < numberOfDataPoints; i++) { point = new DataPoint(); point.YValue = random.Next(1, 100); dataSeries.DataPoints.Add(point); } chart.Series.Add(dataSeries); this.ChartPanel.Children.Add(chart); } #endregion #region 折线图示例 public void ShowLine() { Chart chart = new Chart(); //折线图的标题 Title title = new Title(); title.Text = "折线图的标题"; chart.Titles.Add(title); //设置类型为折线图 DataSeries dataSeries = new DataSeries(); dataSeries.RenderAs = RenderAs.Spline; dataSeries.LegendText = "X坐标"; //设置点 DataPoint point; Random random = new Random(); for (int i = 0; i < 10; i++) { point = new DataPoint(); point.YValue = random.Next(1, 100); dataSeries.DataPoints.Add(point); } chart.Series.Add(dataSeries); this.ChartLine.Children.Add(chart); } #endregion #region 雷达图示例 public void ShowRadar() { Chart chart = new Chart(); //雷达图的标题 Title title = new Title(); title.Text = "雷达图的标题"; chart.Titles.Add(title); //设置类型为雷达图 DataSeries dataSeries = new DataSeries(); dataSeries.RenderAs = RenderAs.Radar; dataSeries.LegendText = "X坐标"; //设置点 DataPoint point; Random random = new Random(); for (int i = 0; i < 10; i++) { point = new DataPoint(); point.YValue = random.Next(1, 100); dataSeries.DataPoints.Add(point); } chart.Series.Add(dataSeries); this.Chart1.Children.Add(chart); } #endregion #region 气泡图示例 public void ShowBubble() { Chart chart = new Chart(); //气泡图的标题 Title title = new Title(); title.Text = "气泡图的标题"; chart.Titles.Add(title); //设置类型为气泡图 DataSeries dataSeries = new DataSeries(); dataSeries.RenderAs = RenderAs.Bubble; dataSeries.LegendText = "X坐标"; //设置点 DataPoint point; Random random = new Random(); for (int i = 0; i < 10; i++) { point = new DataPoint(); point.YValue = random.Next(1, 100); dataSeries.DataPoints.Add(point); } chart.Series.Add(dataSeries); this.Chart2.Children.Add(chart); } #endregion // 当用户导航到此页面时执行。 //protected override void OnNavigatedTo(NavigationEventArgs e) //{ //} } }
DLL文件以及源码:http://pan.baidu.com/s/1c0q2Y5q