• 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 大家有什么的图形控件一起分享下。

  • 相关阅读:
    MySQL高级【一】索引和视图
    SpringMVC【八】文件上传和下载
    SpringMVC【七】拦截器
    SpringMVC【六】AJAX
    python
    SqlServer优化之批量插入(SqlBulkCopy、表值参数)
    SQL中merge into用法
    Asp.Net MVC Filter权限过滤使用说明 FilterConfig类
    .NET-ORM框架EF-Code First代码优先
    asp.net mvc框架之EF的使用
  • 原文地址:https://www.cnblogs.com/xqhppt/p/1818178.html
Copyright © 2020-2023  润新知