Silverlight/WPF绘制统计图Visifire.dll文件

效果图:


前台代码:

<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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值