WPF DevExpress ChartControl使用之XYDiagram
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的更多相关文章
- WPF DevExpress ChartControl用法
WPF常用的第三方控件集,DevExpress中ChartControl的使用 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="On ...
- WPF DevExpress ChartControl使用之PieChart
饼状图要比XYDiagram要简单一点,大体上也是那些东西,没有了X.Y坐标轴,也就没有了第二坐标,要简单一点.PieChartControl.xaml <UserControl x:Class ...
- WPF Devexpress ChartControl CrosshairLabel显示内容居右
源码可加Q群:580749909. 一.解决的问题 ChartControl中希望CrosshairLabel的内容据右 or 自定义 二.实现. 多个显示实例(实例:条形,线形,点等等)下的内容设置 ...
- 张奎师弟参与devexpress chartControl绘图--解决了devexpress的chartControl控件不能添加系列的问题
using DevExpress.XtraCharts; using System; using System.Collections.Generic; using System.ComponentM ...
- DevExpress ChartControl大数据加载时有哪些性能优化方法
DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...
- WPF Devexpress 控件库中ChartControl 实现股票分时走势图
概要 从事金融行业开发 ,会接触些图表控件,这里我分享一下自己基于DevExpress.Charts.v16.2开发的股票分时走势图的经验. 附上源码:点击跳转 如果需要讨论,Q群:580749909 ...
- [DevExpress]ChartControl之时间轴示例
关键代码: using System; using System.Data; using System.Windows.Forms; using DevExpress.XtraCharts; name ...
- [DevExpress]ChartControl之柱状图示例
关键代码: using System; using System.Data; using System.Windows.Forms; using CSharpUtilHelpV2; using Dev ...
- [DevExpress]ChartControl之SeriesTemplate示例
关键代码: using System; using System.Data; using System.Windows.Forms; using CSharpUtilHelpV2; using Dev ...
随机推荐
- Kafka 1.1.0 服务端源码阅读笔记
网络层 01: 服务器的启动 02: Acceptor和Processor 03: RequestChannel API层 04: Handler和Apis 06: Produce请求(1): 写入本 ...
- redis同步到磁盘
- Centos6.5下安装jumpserver-1.4.1报错AttributeError: module 'gssapi' has no attribute 'GSSException'
报错: >>> import paramiko Traceback (most recent call last): File "<stdin>", ...
- 关于MD5加盐使用
md5 是一种数据加密,例子是对123456 进行了两次加盐 第一次是 inputPassToFormPass salt是固定的 1a2b3c4d 第二次是 formPassToDBPass s ...
- java web开发环境设置
Mapped Statements collection does not contain value for后面是什么类什么方法之类的问题: 除了"https://changbl.itey ...
- PHP内存管理-zendMM
ZendMM 是zend memory manager zendMM可以分为三层: 1.存储层 维护者不同体量内存的hash表,已提供堆层使用,负责向os申请和释放内存 2.堆层 PHP内存管理的核心 ...
- macos catalina安装python3
之前跟着教程用brow安装了python3,后来发现电脑上有三个版本的python,头大. 于是用brew uninstall --force python3卸掉了python3 看到现在有两个版本 ...
- CDN内容分发
什么是CDN内容分发: CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分 ...
- 怎样获取页面中所有带href属性的标签集合
使用: document.links document.links instanceof HTMLCollection; 注意: 1. a 标签和 area 标签可以设置 href属性, 因此可以被获 ...
- QT调用CHM方法
QDesktopServices desktopServices;QString strUrl=QCoreApplication::applicationDirPath () ;strUrl=QStr ...