利用托管代码的方式创建Visifire Chart
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
---------------------------------------------------------------
aspnetx的BI笔记系列索引:
使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能
---------------------------------------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2007-04-10 网游防沉迷系统全面实行时间将公布