专注ASP.NET和SQLServer2008 BI&GIS

骂别人不革命,便是革命者,则自己不做事,而骂别人的事做得不好,自然便是更做事者。
若与此辈理论,可以被牵连到白费唇舌,一事无成,也就是白活一世,于己于人,都无益处。
我现在得了妙法,是谣言不辩,诬蔑不洗,只管自己做事。——鲁迅1934年6月21日信
posts - 244, comments - 1210, trackbacks - 26, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

Visifire是利用Silverlight 2.0 beta 1开发的不错的Chart解决方案.利用它可以很容易的把其加入到各种技术方式实现的BS方案中的项目中去.按照官方的文档,只要加入一个xml文件就可以了,比如:


<vc:Chart xmlns:vc="clr-namespace:Visifire.Charts;assembly=Visifire.Charts"
          Theme="Theme3" AnimationType="Type3">

  <vc:Title Text="Athens 2004 Olympics"/>
  <vc:AxisX Title="Country"/>
  <vc:AxisY Title="Gold Medals Won"/>

  <vc:DataSeries RenderAs="Column"  LabelEnabled="True">
    <vc:DataPoint AxisLabel="USA" YValue="35"/>
    <vc:DataPoint AxisLabel="China" YValue="32"/>
    <vc:DataPoint AxisLabel="Russia" YValue="27"/>
    <vc:DataPoint AxisLabel="Australia" YValue="17"/>
    <vc:DataPoint AxisLabel="Japan" YValue="16"/>
  </vc:DataSeries>
</vc:Chart>



不过对于开发人员来说这样一定很不爽,既然是开源的.net下的东西,为什么不能在程序中控制它呢?Sunil的这个文章向大家介绍了如何去做:
http://www.visifire.com/blog/2008/04/03/creating-visifire-charts-with-managed-code/#comment-31
其实看下面的代码就很清晰了:


Visifire.Charts.Chart visiChart = new Visifire.Charts.Chart();
Visifire.Charts.DataSeries dataSeries = new Visifire.Charts.DataSeries();
Visifire.Charts.DataPoint dataPoint;
Visifire.Charts.Title title = new Visifire.Charts.Title();

title.Text = "Click On Chart To Refresh";
visiChart.Children.Add(title);

visiChart.Width = 500; // Width and Height are required for the Chart.
visiChart.Height = 300;

Random rand = new Random(DateTime.Now.Millisecond);

for (int i = 0; i < 9; i++)
{
    dataPoint = new Visifire.Charts.DataPoint();
    dataPoint.YValue = rand.Next(100, 1000);
    dataSeries.Children.Add(dataPoint);
}

dataSeries.RenderAs = "Point";
visiChart.Children.Add(dataSeries);

LayoutRoot.Children.Clear(); // So that Chart objects don’t build up each time we add one.
LayoutRoot.Children.Add(visiChart);

这样在自己的系统中数据怎么取就自己说的算了,里面的数据元素实际上就是一个DataPoint数据类型,简单的很.
以下是Visifire的相关资源,强烈建议silverlight社区的朋友去看看,真的很眩.

官方网站
http://www.visifire.com/
下载页面
http://www.visifire.com/download_silverlight_charts.php

Feedback

#1楼    回复  引用  查看    

2008-04-10 22:31 by WASPCN [未注册用户]
这个印度人搞得开源程序,不错!

现在还不能动态调整Chart,非要LayoutRoot.Children.Clear()




#2楼    回复  引用  查看    

2008-04-16 16:18 by neuhawk[] [未注册用户]
如何支持中文呢

#3楼    回复  引用  查看    

2008-05-07 21:27 by Everett1 [未注册用户]
这个SL的chart我感觉也很棒, 不比visifire的差
http://home.comcast.net/~venkata.guddanti/FreeSilverlightChart/index.html