WPF使用Dev和WinForm有许多不同,相对而言,WPF要更简单和炫酷一点,我只做了一点基本的功能,没有仔细的研究,这里只介绍一下WPF Dev ChartControl绘制XYDiagram的基础。

XYDiagramControl.xaml页面

<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
x:Class="WpfControl.XYDiagramControl"
mc:Ignorable="d">
<Grid>
<dxc:ChartControl HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top">
<dxc:XYDiagram2D LabelsResolveOverlappingMinIndent="" x:Name="diagram1" EnableAxisXNavigation="True">
<dxc:XYDiagram2D.DefaultPane>
<dxc:Pane Name="pane"/>
</dxc:XYDiagram2D.DefaultPane>
<dxc:XYDiagram2D.AxisY>
<dxc:AxisY2D GridLinesMinorVisible="False">
</dxc:AxisY2D>
</dxc:XYDiagram2D.AxisY>
<dxc:XYDiagram2D.SecondaryAxesY>
</dxc:XYDiagram2D.SecondaryAxesY>
<dxc:XYDiagram2D.AxisX>
<dxc:AxisX2D GridLinesVisible="False"/>
</dxc:XYDiagram2D.AxisX>
<dxc:LineSeries2D MarkerVisible="True" LabelsVisibility="True" ArgumentDataMember="Key" ValueDataMember="Value" x:Name="series1">
<dxc:LineSeries2D.LineStyle>
<dxc:LineStyle Thickness="" />
</dxc:LineSeries2D.LineStyle>
</dxc:LineSeries2D>
</dxc:XYDiagram2D>
<dxc:ChartControl.Legend>
<dxc:Legend HorizontalPosition="Right"/>
</dxc:ChartControl.Legend>
<dxc:ChartControl.ToolTipController>
<dxc:ChartToolTipController AutoPopDelay="" InitialDelay=""/>
</dxc:ChartControl.ToolTipController>
</dxc:ChartControl>
</Grid>
</UserControl>

XYDiagramControl.cs页面

using System.Collections.Generic;
using System.Windows.Controls;
using DevExpress.Xpf.Charts;
using Dugufeixue.Common;
namespace WpfControl
{
/// <summary>
/// UserControl2.xaml 的交互逻辑
/// </summary>
public partial class XYDiagramControl : UserControl
{
double maxValue = ;
private char divider = '_';
public XYDiagramControl(List<DataEntity> decs, bool isLine, bool isShowLabel, bool isSameY)
{
InitializeComponent();
int index = ;
foreach (DataEntity de in decs)
{
Series series = null;
if (!isSameY)
{
//设置Y轴的第二坐标
SecondaryAxisY2D SecondaryAxisY = new SecondaryAxisY2D();
diagram1.SecondaryAxesY.Add(SecondaryAxisY);
//设置第二坐标的标题
AxisTitle title = new AxisTitle();
title.Content = de.Ytitle;
SecondaryAxisY.Title = title;
if (isLine)
{
//新建一个折线图
series = new LineSeries2D();
//设置series与第二坐标轴关联
XYDiagram2D.SetSeriesAxisY((LineSeries2D)series, SecondaryAxisY);
}
else
{
//新建一个柱状图
series = new BarSideBySideSeries2D();
//设置柱状图的Label
SeriesLabel label = new SeriesLabel();
label.Indent = ;
series.Label = label;
if (isShowLabel)
{
BarSideBySideSeries2D.SetLabelPosition(series.Label, Bar2DLabelPosition.Outside);
}
XYDiagram2D.SetSeriesAxisY((BarSideBySideSeries2D)series, SecondaryAxisY);
}
}
else
{
if (isLine)
{
series = new LineSeries2D();
}
else
{
series = new BarSideBySideSeries2D();
SeriesLabel label = new SeriesLabel();
label.Indent = ;
series.Label = label;
if (isShowLabel)
{
BarSideBySideSeries2D.SetLabelPosition(series.Label, Bar2DLabelPosition.Outside);
}
}
}
series.Name = "series" + index;
series.DisplayName = de.Displayname;
//设置series的数据源
series.DataSource = de.Dic;
series.LabelsVisibility = isShowLabel;
series.ArgumentDataMember = "Key";
series.ValueDataMember = "Value";
//向XYDiagram中添加series
diagram1.Series.Add(series);
index++;
}
}
}
}

WPF DevExpress ChartControl使用之XYDiagram的更多相关文章

  1. WPF DevExpress ChartControl用法

    WPF常用的第三方控件集,DevExpress中ChartControl的使用 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="On ...

  2. WPF DevExpress ChartControl使用之PieChart

    饼状图要比XYDiagram要简单一点,大体上也是那些东西,没有了X.Y坐标轴,也就没有了第二坐标,要简单一点.PieChartControl.xaml <UserControl x:Class ...

  3. WPF Devexpress ChartControl CrosshairLabel显示内容居右

    源码可加Q群:580749909. 一.解决的问题 ChartControl中希望CrosshairLabel的内容据右 or 自定义 二.实现. 多个显示实例(实例:条形,线形,点等等)下的内容设置 ...

  4. 张奎师弟参与devexpress chartControl绘图--解决了devexpress的chartControl控件不能添加系列的问题

    using DevExpress.XtraCharts; using System; using System.Collections.Generic; using System.ComponentM ...

  5. DevExpress ChartControl大数据加载时有哪些性能优化方法

    DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...

  6. WPF Devexpress 控件库中ChartControl 实现股票分时走势图

    概要 从事金融行业开发 ,会接触些图表控件,这里我分享一下自己基于DevExpress.Charts.v16.2开发的股票分时走势图的经验. 附上源码:点击跳转 如果需要讨论,Q群:580749909 ...

  7. [DevExpress]ChartControl之时间轴示例

    关键代码: using System; using System.Data; using System.Windows.Forms; using DevExpress.XtraCharts; name ...

  8. [DevExpress]ChartControl之柱状图示例

    关键代码: using System; using System.Data; using System.Windows.Forms; using CSharpUtilHelpV2; using Dev ...

  9. [DevExpress]ChartControl之SeriesTemplate示例

    关键代码: using System; using System.Data; using System.Windows.Forms; using CSharpUtilHelpV2; using Dev ...

随机推荐

  1. 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱

    题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...

  2. idea的eclipse快速定位link with editor

    eclipse的link with editor,个人感觉非常有用的一个功能 idea也有这个功能autoscroll from source

  3. PYTHON 100days学习笔记008-3:输入和输出

    目录 Day008-03:Python3 输入和输出 1.输出格式美化 1.1 str.format()用法 1.2 旧式字符串格式化 2.读取键盘输入 3.读和写文件 4.文件对象的方法 4.1 f ...

  4. mybatis+mysql insert添加数据后返回数据主键id

    1.根据useGeneratedKeys获取返回值,部分数据库不支持 修改mybatis xml <insert id="insertUser" useGeneratedKe ...

  5. 使用pycharm开发web——django2.1.5(一)入坑尝试第一步,基本搭建

    首先,接触python的人应该都会用pip 来安装需要的包吧(------>>>>)默认 在运行中使用python -m django --version来检查自己的djang ...

  6. Java虚拟机内存管理小结

  7. jsp获取Session中的值

    摘要:这个问题算是老生常谈了,我也是一段时间没弄过了,所以感觉有些忘了,就记录一下. 一.后端通过shiro在session中存储数据: // username是前台传过来的用户名 if (subje ...

  8. CentOS7安装配置redis5集群

    一.服务器准备 本文准备了3台服务器 , 分别是 172.18.0.231 172.18.0.232 172.18.0.233 每台运行2个redis实例, 端口分别为7000 7001 ,即总共6个 ...

  9. Thread 和 Runnable

    Thread 和 Runnable 1. 简介 Java 主要是通过 java.lang.Thread 类以及 java.lang.Runnable 接口实现线程机制的. Thread 类为底层操作系 ...

  10. java8【一、lambda表达式语法】

    特点 lambda表达式允许将函数作为方法的参数 lambda表达式更加简洁 特征 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需 ...