WPF DEV dxc:ChartControl 柱状图
先上效果图:

<UserControl xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
mc:Ignorable="d">
<Grid>
<dxc:ChartControl Padding="0"
Background="Transparent"
BorderBrush="Transparent"
CrosshairEnabled="False"
AnimationMode="OnLoad"
>
<dxc:ChartControl.CrosshairOptions>
<dxc:CrosshairOptions CrosshairLabelMode="ShowForNearestSeries" />
</dxc:ChartControl.CrosshairOptions> <dxc:XYDiagram2D x:Name="dragram"
PaneOrientation="Vertical"
EqualBarWidth="True"
>
<dxc:XYDiagram2D.DefaultPane>
<dxc:Pane>
<dxc:Pane.DomainBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#66FFFFFF" Offset="1"/>
<GradientStop Color="#FF466161" Offset="0"/>
<GradientStop Color="#FF7D9090" Offset="0.5"/>
</LinearGradientBrush>
</dxc:Pane.DomainBrush>
</dxc:Pane>
</dxc:XYDiagram2D.DefaultPane>
<dxc:XYDiagram2D.AxisX>
<dxc:AxisX2D>
<dxc:AxisX2D.Label>
<dxc:AxisLabel Angle="-45"
FontSize="18"
Foreground="White"
Visibility="Visible"
x:Name="DXCAxisLabel"
/>
</dxc:AxisX2D.Label>
</dxc:AxisX2D>
</dxc:XYDiagram2D.AxisX>
<dxc:XYDiagram2D.AxisY>
<dxc:AxisY2D FontSize="24"
Brush="White"
Foreground="White"
FontFamily="微软雅黑"
GridLinesVisible="False"
TickmarksVisible="False"
TickmarksMinorVisible="False"
>
<dxc:AxisY2D.Label>
<dxc:AxisLabel FontSize="18"
Staggered="False"
Foreground="White"
Visibility="Visible"
FontFamily="微软雅黑"
/>
</dxc:AxisY2D.Label>
</dxc:AxisY2D>
</dxc:XYDiagram2D.AxisY>
<dxc:BarSideBySideSeries2D x:Name="Series"
BarWidth="0.6"
LabelsVisibility="True"
> <dxc:BarSideBySideSeries2D.Model>
<dxc:BorderlessGradientBar2DModel />
</dxc:BarSideBySideSeries2D.Model> </dxc:BarSideBySideSeries2D>
</dxc:XYDiagram2D>
<dxc:ChartControl.Legend>
<dxc:Legend VerticalPosition="Top"
HorizontalPosition="RightOutside"
FontSize="24"
Orientation="Vertical"
/>
</dxc:ChartControl.Legend>
</dxc:ChartControl>
</Grid>
</UserControl>
后台代码:
using DevExpress.Xpf.Charts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace Kingo.Land.JCJG.Controls
{
/// <summary>
/// UCChart.xaml 的交互逻辑
/// </summary>
public partial class UCChart : UserControl
{
public UCChart()
{
InitializeComponent();
}
/// <summary>
/// 图表标题
/// </summary>
public string Title
{
get; set;
} /// <summary>
/// 图表统计单位
/// </summary>
public string Unit
{
get; set;
} /// <summary>
/// 图标信息
/// </summary>
public List<ChartData> listChartData
{
get; set;
} /// <summary>
/// 绑定图表
/// </summary>
public void InitData()
{
lblTitle.Content = Title;
//lblUnit.Content = " " + Unit;
dragram.Series.Clear(); foreach (ChartData item in listChartData)
{ BarSideBySideSeries2D entity = new BarSideBySideSeries2D(); entity.ActualLabel.Visible = false;
entity.DisplayName = item.DisplayName;
entity.Brush = item.Brush;
entity.Model = new BorderlessSimpleBar2DModel();
//entity.Label = new SeriesLabel();
//图表增长型的样式
entity.PointAnimation = new Bar2DGrowUpAnimation();
foreach (KeyValuePair<string, double> dic in item.dicPoints)
{
entity.Points.Add(new SeriesPoint { Argument = dic.Key, Value = dic.Value });
} dragram.AxisX = new AxisX2D();
dragram.DefaultPane.AxisXScrollBarOptions = new ScrollBarOptions() { Visible =false };
//dragram.AxisX.Label = new AxisLabel();
//dragram.AxisX.Label.Staggered = true;
DataTemplate myTemplate = (DataTemplate)Resources["AxisXLabelTemplate"];
dragram.AxisX.Label = new DevExpress.Xpf.Charts.AxisLabel() { ElementTemplate = myTemplate, FontSize=, Foreground=new SolidColorBrush(Colors.White) };
dragram.Series.Add(entity);
} }
/// <summary>
/// 绑定图表
/// </summary>
public void InitData1()
{
lblTitle.Content = Title;
//lblUnit.Content = " " + Unit;
dragram.Series.Clear();
foreach (ChartData item in listChartData)
{
BarSideBySideStackedSeries2D entity = new BarSideBySideStackedSeries2D();
entity.DisplayName = item.DisplayName;
entity.Brush = item.Brush;
entity.ActualLabel.Visible = false;
//entity.Label = new SeriesLabel();
//entity.Label.
//图表增长型的样式
entity.PointAnimation = new Bar2DGrowUpAnimation();
foreach (KeyValuePair<string, double> dic in item.dicPoints)
{
SeriesPoint sPoint = new SeriesPoint { Argument = dic.Key, Value = dic.Value, Tag = item.DisplayCode };
entity.Points.Add(sPoint);
} dragram.AxisX = new AxisX2D();
DataTemplate myTemplate = (DataTemplate)Resources["AxisXLabelTemplate"];
dragram.AxisX.Label = new DevExpress.Xpf.Charts.AxisLabel() { ElementTemplate = myTemplate };
dragram.AxisX.Interlaced = true;
dragram.AxisX.Alignment = AxisAlignment.Near;
//dragram.AxisX.ActualLabel.Staggered = true;
dragram.Series.Add(entity);
}
} /// <summary>
/// 图表信息
/// </summary>
public class ChartData
{
/// <summary>
/// 统计的内容
/// </summary>
public string DisplayName { get; set; } public string DisplayCode { get; set; } /// <summary>
/// 内容对应的颜色
/// </summary>
public SolidColorBrush Brush { get; set; } /// <summary>
/// 所有相关内容的地市(地市名称,对应数值)
/// </summary>
public Dictionary<string, double> dicPoints { get; set; }
} private void dragram_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{ } public Action<string> ShowDetails; private void chart_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Point position = e.GetPosition(chart);
ChartHitInfo hitInfo = chart.CalcHitInfo(position);
if (hitInfo != null && hitInfo.SeriesPoint != null)
{
if (ShowDetails != null)
ShowDetails(hitInfo.SeriesPoint.Argument.ToString());
}
}
} public class WidthToOffsetConverter : MarkupExtension, IValueConverter
{
public WidthToOffsetConverter()
{ }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double width = (double)value;
return -(width * 0.35);
} public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
} public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
}
使用方法:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace Kingo.Land.JCJG.Controls
{
/// <summary>
/// UCJZJDControl.xaml 的交互逻辑
/// </summary>
public partial class UCJZJDControl : UserControl
{
public UCJZJDControl()
{
InitializeComponent();
this.Loaded += UCJZJDControl_Loaded;
this.btnShow.Click += BtnShow_Click;
} private void BtnShow_Click(object sender, RoutedEventArgs e)
{
this.Visibility = Visibility.Collapsed;
} private void UCJZJDControl_Loaded(object sender, RoutedEventArgs e)
{
InitData();
} private void InitData()
{try
{
#region
dbHelper = Kingo.Common.DBOperator.RDBFactory.CreateDbHelper(System.Configuration.ConfigurationManager.AppSettings["OracleConn"], Kingo.Common.DBOperator.DatabaseType.Oracle);
string sql = @"select * from Table";
System.Data.DataTable dtSource = dbHelper.ExecuteDatatable("tb", sql, true);
if (dtSource == null || dtSource.Rows.Count <= ) return;
chart.listChartData = new List<UCChartControl.ChartData>();
UCChartControl.ChartData data = new UCChartControl.ChartData();
data.DisplayName = "未举证";
data.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF384C56"));
data.dicPoints = new Dictionary<string, double>(); UCChartControl.ChartData data1 = new UCChartControl.ChartData();
data1.DisplayName = "已举证";
data1.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF627373"));
data1.dicPoints = new Dictionary<string, double>(); foreach (DataRow dr in dtSource.Rows)
{
data.dicPoints.Add(dr["MC"].ToString(), Convert.ToDouble(dr["WJZ"].ToString()));
data1.dicPoints.Add(dr["MC"].ToString(), Convert.ToDouble(dr["JZ"].ToString()));
}
chart.listChartData.Add(data);
chart.listChartData.Add(data1);
chart.InitData();
#endregion
}
catch (Exception)
{
throw;
}
finally
{
if (dbHelper != null)
dbHelper.DisConnect();
}
}
}
}
WPF DEV dxc:ChartControl 柱状图的更多相关文章
- WPF DEV控件-ChartControl用法
WPF常用的第三方控件集,DevExpress 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="OnDataChanged" ...
- WPF DEV CellTemplateSelector(一个正确使用DevExpress CellTemplateSelector的Demo)
说明 我在项目中根据需求需要用到WPF Dev CellTemplateSelector时,遇到不少坑.曾一度想要放弃使用模板转换器,但又心有不甘,终于在不断努力下,达到了需求的要求.所以写下来和大家 ...
- DevExpress ChartControl 柱状图的使用【转】
//中心业务平台的“热门岗位信息监测”柱状图 public partial class HotJobInfo : UserControl { private object _o ...
- C# WinfForm 控件之dev图表 ChartControl
dev 图表控件 学习连接 新建一个winformApp form1上放一个button 再放一个chartControl Name 为cct 直接上代码 private void button1_C ...
- DevExpress中ChartControl柱状图(Bar)用法
我的数据 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 chartControl1.Series.Clear(); ...
- Dev之ChartControl控件(二)— 绘制多重坐标图形
有时针对一个ChartControl控件可能要设置多个Y轴,进行显示: 以下举个例子:如在一个Chart中显示多个指标项如图: 首先,读取数据,并对左边的Y轴最大和最小值进行设定 IndexSerie ...
- Dev之ChartControl控件(一)
ChartControl控件主要包括Chart Title,Legend,Annotations,Diagram,Series五部分:如图: 1. 用RangeControl控件控制ChartCon ...
- WPF DEV实现手风琴效果
说明 最近用WPF+DevExpress做项目时,需要做一个类似手风琴的效果,效果的界面如下.因为没有现成的控件,需要自定义模板,所以写了一个Demo和大家分享,项目中可以根据实际情况使用.如果你用不 ...
- WPF 自定义图表(柱状图,曲线图)
1.功能 实现图表的数据绑定,动态绑定,属性更改绑定. 本文提供了一种思路. 2.原理 使用canvas绘制,使用反射来确定属性的绑定. 3.效果: 柱状图效果: 曲线图效果: 感谢阅读. 源码地址: ...
随机推荐
- Verilog强制激励语法
Verilog强制激励语法 1. 在一个过程块中,可以用两种不同的方式对信号变量或表达式进行连续赋值. 过程连续赋值往往是不可以综合的,通常用在测试模块中. 两种方式都有各自配套的命令来停止赋值过程. ...
- [BUG]读配置文件中文, 查询不到数据库
配置文件编码, 要和数据库编码一致
- 自动化测试-1.selenium简介
1. selenium一个自动化测试工具,适用于测试web系统2. selenium支持多种编程语言:python .java .c#.ruby3.selenium支持多浏览器,selenium脚本可 ...
- pycharm 设置参数,快捷键
pycharm 设置参数 当编写代码的时候出现红色下划线提示,表示有异常,此时需要导入此模块 参数设置 设置完参数之后执行一下看看效果 这里面0为脚本本身,1为刚才设置的参数hello 快捷键设置 常 ...
- 温度转换-java
java 温度转换 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度. 程序的输入是一个整数,表示华氏温度.输 ...
- 通过GUID确保winform运行唯一实例
通过程序生成的GUIDwinform唯一实例 using System.Threading;bool createdNew; Guid ownGUID = new Guid(((GuidAttribu ...
- 通用base.css —— 《编写高质量代码 web前端开发修炼之道》
@charset "utf-8"; /*CSS reset*/ html{color:#000;background:#FFF;} body,div,dl,dt,dd,ul,ol, ...
- 2java判断素数
package com.test; import java.math.*;import java.util.Scanner; public class test222 { /** * @param a ...
- BZOJ1800:fly 飞行棋 (双指针 组合数)
pro: 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. N<20; sol:很可能被 ...
- Python全栈之路----函数进阶----名称空间
又名name space,顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的=地方 名称空间共3种,分别如下 ...