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. noi openjudge 6044:鸣人和佐助

    http://noi.openjudge.cn/ch0205/6044/ 描述佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个 ...

  2. idea启动不了,报错Address localhost:1099 is already in use

    解决方法 win + R 然后输入cmd netstat -ano|findstr 1099 taskkill -f -pid 你的PID

  3. 学习笔记:CentOS7学习之十九:Linux网络管理技术

    目录 学习笔记:CentOS7学习之十九:Linux网络管理技术 本文用于记录学习体会.心得,兼做笔记使用,方便以后复习总结.内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK ...

  4. 数据结构 -- 栈(Stack)

    一.栈的简介 定义 栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据 ...

  5. session和cookie区别,多台WEB服务器如何共享session,禁用COOKIE后SESSION是否可用,为什么?

    答:session的运行机制: 用户A访问站点Y,如果站点Y指定了session_start();(以下假设session_start()总是存在)那么会产生一个session_id,这个sessio ...

  6. axios拦截器的介绍

    interceptors 拦截器 拦截器一般做什么? 1. 修改请求头的一些配置项 2. 给请求的过程添加一些请求的图标 3. 给请求添加参数 拦截器的基本语法: 拦截器分为全局拦截器和局部拦截器 全 ...

  7. 网络编程[第二篇]基于udp协议的套接字编程

    udp协议下的套接字编程 一.udp是无链接的    不可靠的 而上篇的tcp协议是可靠的,会有反馈信息来确认信息交换的完成与否 基于udp协议写成的服务端与客户端,各司其职,不管对方是否接收到信息, ...

  8. Devexpress WinForm GridControl实现单元格可编辑状态更改

    之前做项目的时候,需要实现这样的功能.在gridcontrol中,根据是否修改(checkbox)列的选中和未选中状态来联动另外一列的编辑状态.实现如下: private void gridView1 ...

  9. dl in image process

    deep learning目前为止无论在分类还是检测上,都是整体的处理,而不会出现像sift这样的局部特征,这个问题或许如果能克服掉,能让检测效果更进一大步.

  10. C语言两个特别大的整数类型相加超出范围使用两个技巧

    技巧1:用long (%ld)或者long long(%lld)类型存取 技巧2:当两个同号的数字相加,放到等号的另一边,变成减号 问题: 给定区间[-2的31次方, 2的31次方]内的3个整数A.B ...