zoukankan      html  css  js  c++  java
  • 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 大家有什么的图形控件一起分享下。

  • 相关阅读:
    白雪公主与七个爷爷——冲刺日志(第二天)
    vba实践
    微信小程序scroll-view不起作用,bindscrolltolower事件无响应
    git bash相关命令
    hexo博客中命令备忘(markdown语法)
    微信聊天记录生成词云图(等日后有机会补充完整)
    微信小程序解决存在图片太大而有效显示区域较小--阿里云oss产生缩略图
    css样式基础库--global.css(持续更新中~)
    Chrome控制台常用技巧
    css基础-动画效果
  • 原文地址:https://www.cnblogs.com/xqhppt/p/1818178.html
Copyright © 2011-2022 走看看