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 ...
 
随机推荐
- stat中的st_dev和st_rdev
			
目录 stat中的st_dev和st_rdev title: stat中的st_dev和st_rdev date: 2019/11/27 21:04:25 toc: true --- stat中的st ...
 - cent7配置阿里yum源
			
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/CentOS系统更换软件安装源第一步:备份你的原镜像文件,以免出错后可以恢复.mv /etc/yum.repos.d ...
 - [转帖]redis监控工具汇总
			
redis监控工具汇总 https://www.cnblogs.com/felixzh/p/11170143.html redis-stat redis-stat是一个比较有名的redis指标可视化的 ...
 - HTTP报文学习
			
HTTP报文用于HTTP协议的信息交互,分为请求报文和响应报文.报文由首部和主体两部分组成,中间使用空行(CR+LF)分隔 1. 报文结构 报文由首部.空行和实体组成: 报文中首先是请求行或者状态行, ...
 - opencv实现人脸识别(四) 人脸识别模块
			
到这一步就是进行人脸识别了. 流程图: 代码: import cv2 def recognize(cam): recognizer = cv2.face.LBPHFaceRecognizer_crea ...
 - Python第三方库资源
			
[转载]Python第三方库资源 转自:https://weibo.com/ttarticle/p/show?id=2309404129469920071093 参考:https://github ...
 - 将数组转化为List集合
			
字符串转换为数组.将数组转换为List集合 public void testStringToList(){ String s="123-abc-456"; System.out.p ...
 - hdu 2846 字典树变形
			
mark: 题目有字串匹配的过程 有两点 1.为了高效的匹配子串 可以把所有的子串都预处理进去 然后字典树计数就放在最后面 2.在同一个母串处理自串的时候 会有重复的时候 比如abab 这里去重用个 ...
 - 设计模式 --  MVC
			
MVC 在Web中应用是常见的了,成为基础应用模式. 不好的用法是把业务写在C 中,M只是失血模型. 应该要重M 轻C,业务写在M中,但是这样有问题了.View 会引用Model,那么View会看到M ...
 - luogu2261余数求和题解--整除分块
			
题目链接 https://www.luogu.org/problemnew/show/P2261 分析 显然\(k\) \(mod\) \(i=k-\lfloor {k/i}\rfloor\) \(\ ...