今天在網上看到一個強大SilverLight圖表控件:
鏈接網址:http://visifire.com/
我用的版本是:3.6.8
代碼:
引用SLVisifire.Charts.dll
Imports Visifire.Charts
Imports Visifire.Commons
Me.LayoutRoot.Children.Clear()
Dim chart As New Chart
chart.Width = 450.0
chart.Height = 300.0
'去除水印效果,如果沒有購買產品,水印是去不掉的
'如果想去掉水印,可以添加一個StackPanel遮罩層將水印去掉
chart.Watermark = False
'是否添加3D效果,默認非3D效果
chart.View3D = True
'圖表皮膚,有3種默認皮膚,Theme1,Theme2,Theme3
'注:未實現枚舉,有待進一步改進
chart.Theme = "Theme1"
'圖表顏色集合
chart.ColorSet = "VisiGreen"
'圖表的工具欄是否可用,現在默認只有一個保存爲圖片的功能
chart.ToolBarEnabled = True
chart.ScrollingEnabled = True
chart.AnimatedUpdate = True
chart.CornerRadius = New CornerRadius(7.0)
chart.ShadowEnabled = True
'chart標題
Dim title As New Title
title.Text = "Visifire圖表演示"
title.Padding = New Thickness(0.0, 10.0, 15.0, 10.0)
chart.Titles.Add(title)
Dim tip = New Visifire.Charts.ToolTip()
tip.VerticalAlignment = VerticalAlignment.Bottom
tip.Text = "Visifire圖表演示Tip"
chart.ToolTips.Add(tip)
Dim legend = New Legend()
chart.Legends.Add(legend)
Dim axi As New Axis
axi.Title = "X軸參數代表含義"
'X軸刻度類型
axi.IntervalType = Visifire.Charts.IntervalTypes.Number
'X軸刻度間隔
axi.Interval = 2.0
chart.AxesX.Add(axi)
Dim axiY As New Axis
'Y軸參數最小值
axiY.AxisMinimum = 1
'Y軸參數後綴
axiY.Suffix = ".00"
'y軸參數前綴
axiY.Prefix = "數字:"
axiY.Title = "Y軸參數代表含義"
chart.AxesY.Add(axiY)
'圖表中的單個數據線
Dim dataSeries As New DataSeries
'單個數據線
dataSeries.RenderAs = Visifire.Charts.RenderAs.Column
dataSeries.LegendText = "數據線1"
Dim count As Integer = 6
Dim random As New Random()
For i As Integer = 0 To count - 1
'單個數據線中的數據點
Dim dataPoint As New DataPoint
dataPoint.YValue = random.Next(1, 100)
dataPoint.ToolTipText = (i + 1).ToString + "-" + dataPoint.YValue.ToString()
'AddHandler dataPoint.MouseLeftButtonUp, New RoutedEventHandler(AddressOf dataPointMouseLeftBtnUp)
dataSeries.DataPoints.Add(dataPoint)
Next
Dim dataSeries2 As New DataSeries
'單個數據線
dataSeries2.RenderAs = Visifire.Charts.RenderAs.Column
dataSeries2.LegendText = "數據線2"
Dim count2 As Integer = 6
Dim random2 As New Random()
For i As Integer = 0 To count - 1
'單個數據線中的數據點
Dim dataPoint2 As New DataPoint
dataPoint2.YValue = random.Next(1, 100)
dataSeries2.DataPoints.Add(dataPoint2)
Next
chart.Series.Add(dataSeries)
chart.Series.Add(dataSeries2)
Me.LayoutRoot.Children.Add(chart)