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=24, 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 <= 0) 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();}}} }
转载于:https://www.cnblogs.com/SeNaiTes/p/10444155.html
WPF DEV dxc:ChartControl 柱状图相关推荐
- Dev中ChartControl添加限定线
1.单击Y轴,设置属性 2.点击ConstantLines属性,打开"Constant Line Collection Editor"界面 3.点击Add添加线条 4.通过设置Ap ...
- C# WPF图表控件之ChartControl用法指南①
" 引言部分,总领全篇文章的中心内容." WPF的DevExpress ChartControl是一种功能强大的可视化工具,可帮助您将数据显示为二维或伪三维条形图.区域.线和许多其 ...
- WPF 2020界面开发新纪元——Accordion控件、图表功能升级
DevExpress WPF Subscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序.通过DevExpress WPF能创建有着强大互动功能的XAML基础 ...
- wpf devexpress
背景 winform切为wpf,使用devexpress插件 参考的网站为:https://docs.devexpress.com/WPF/7875/wpf-controls 1.GridContro ...
- 【柏拉图】在WPF中利用DevExpress控件进行柏拉图展示
dx控件版本为15.2 因为17.2在win7系统中可能存在报错 有知道原因的大佬烦请告知一下 <Grid Grid.Column="1"><dxc:ChartC ...
- DevExress笔记
最近用DevExpress的WPF图表控件做柱形图看板,总结记录了一些笔记: 1.显示图例: <dxc:ChartControl.Legend><dxc:Legend />&l ...
- C# datagridview、datagrid、GridControl增加行号
01 - WinForm中datagridview增加行号 在界面上拖一个控件dataGridView1,在datagridview添加行事件中添加如下代码: private void dataGri ...
- WPF 自定义BarChartControl(可左右滑动的柱状图)
WPF 自定义BarChartControl(可左右滑动的柱状图) 原文:WPF 自定义BarChartControl(可左右滑动的柱状图) 自定义可左右滑动.拖拽滑动的平面柱状图 在做这种样式控件之 ...
- 使用Telerik控件库制作WPF项目中的折线图、柱状图、饼图和甜甜圈图
本博客是基于 .Net Framework 4.6.2 的WPF(MVVM)项目,Telerik版本为 2016.2.613.40.其他版本是否可用不详. 本文章所使用数据均为测试数据,无任何意义. ...
最新文章
- “算法不行,干啥都不行!”面试官:面试基本都会考这点!
- 伤疤好了有黑印怎么办_搞笑gif动态图片:“发现相亲对象的闺蜜更有实力,我后悔了”哈哈哈好一个见色起意...
- react部署之页面空白
- C和汇编----存储类别、链接和内存管理
- Dubbo SPI的基础Cooma微容器
- 同r做一个窗口_目标检测(Object Detection):R-CNN/SPPnet/R-FCN/Yolo/SSD
- Ubuntu系统下允许Apache的mod_rewrite功能
- JS调用ATL DLL
- UGUI 优化关于图集,排序等
- 图片处理--连环画特效
- 递归大总结之斐波那契
- 第二空间计算机最新破解,雨过天晴海外版 电脑时光机 - RollBack Rx v10.2.2699597837 多国语言特别版...
- 用我的亲身经历来告诉你如何自学Java?
- Android进阶之路(快速进阶第二天)RxAndroid使用
- 【服务器数据恢复】服务器误删除ESXi虚拟机的数据恢复案例
- windows全局消息钩子的一个BUG
- 他开发了一款PSVR北美欧洲销量最好的中国游戏,秘诀只有两个字
- 关于输入电阻和输出电阻大小的讨论
- android gps 差分定位,基于Android的高精度GPS定位与土地测量应用设计
- java 下载图片流_java下载图片(通用)httpClient,io流
热门文章
- 院士任校长!“东方理工大学” 正式开工!
- 系统结构图、程序流程图、数据流图
- 科大讯飞语音听写app闪退
- [RK3399][Android7.1] 调试笔记 --- 解决开关按键时产生的Pop声
- 启用Hadoop集群垃圾箱配置
- 中关村2019逆向 Reverse lebel:控制流平坦化 / python字节码分析
- Ansible playbook 详解
- 基于多目标粒子群算法的冷热电联供型综合能源系统运行优化。 包括燃气轮机,燃气锅炉,电制冷机等设备。
- 红帽RHEL7版本RHCE认证学习及考试经历
- java代码---------陈勇老师的