Sliverlight图形控件Visifire使用体会

1.由于项目(sliverlight项目)中要用图形来显示实时或历史数据

  因此,从网上找了些资料,有两种控件比较适合

  1.sliverlight tool kit

  2.visifire

  个人比较喜欢visifire的风格,因此就选择了这个。

2.测试效果

  图1

  

  图2

  

  图3

  

3 代码

1.xaml代码

代码
<UserControl xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" x:Class="YYKJ.ZHGIS.WEB.UserControls.TestChart"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
Width
="500" Height="400">
<Grid x:Name="LayoutRoot">
<Canvas x:Name="mainCV" Canvas.Top="100" Margin="0,50,0,0"></Canvas>
<StackPanel x:Name="spCover" Width="100" Height="25" HorizontalAlignment="Right" Margin="0,50,0,0" VerticalAlignment="Top" Background="Black" Visibility="Collapsed"/>
</Grid>
</UserControl>

其中mainCV是用来放图形的

  spCover是用来遮挡visifire的水印的(效果图没传)

2.C#代码

 

代码
public void CreateChart(ObservableCollection<ETPiValue> oc)
{
Chart chart
= new Chart();

//设置主题 有Theme1 Theme2 Theme3
chart.Theme = "Theme3";
//是否3D显示
chart.View3D = true;
//
chart.Width = 500;
//
chart.Height = 300;

//图形标题
Title title = new Title();
title.Text
= "测试图形";
chart.Titles.Add(title);

//图形类型 RenderAs是枚举类型 有很多种图形 如棒图 饼图等等
DataSeries dataSeries = new DataSeries();
dataSeries.RenderAs
= RenderAs.StackedArea;

DataPoint dataPoint;

for (int i = 0; i < oc.Count; i++)
{
dataPoint
= new DataPoint();

//Y轴数据
dataPoint.YValue = Convert.ToDouble(oc[i].TagValue);
//X轴名称
dataPoint.AxisXLabel = oc[i].SubName;

//SolidColorBrush sc = new SolidColorBrush();
//sc.Color = new Color { B = 0, G = 0, R = 255, A = 255 };
//dataPoint.Color = sc;
//dataPoint.ToolTipText = "1111";

dataSeries.DataPoints.Add(dataPoint);
}

chart.Series.Add(dataSeries);

mainCV.Children.Add(chart);
//遮罩层 用于取出水印
spCover.Visibility = Visibility.Visible;
}

基本用法已经写在注释里了,就不做解释了。

纠错:遮罩层 用于挡住水印,代码里打错字...

4 使用前先要把visifire的dll引用进来,再在代码里引用两个命名空间。

5 大家有什么的图形控件一起分享下。

posted @ 2010-09-04 19:46  忧忧夏天  阅读(2545)  评论(1编辑  收藏  举报