wpf devexpress
背景 winform切为wpf,使用devexpress插件
参考的网站为:https://docs.devexpress.com/WPF/7875/wpf-controls
1.GridControl行号设置
这里主要有两个问题,一个是行号要从1开始,二是行号这一列的行宽设置(默认行宽到100后,数字就显示不全了)
行宽是IndicatorWidth 属性,行号是RowIndicatorContentTemplate 实现
<dxg:TableView ShowGroupPanel="False" Name="gvTable" IndicatorWidth="50" RowIndicatorContentTemplate="{StaticResource rowIndicatorContentTemplate}"/><DataTemplate x:Key="rowIndicatorContentTemplate"><StackPanel VerticalAlignment="Stretch"HorizontalAlignment="Stretch"><TextBlock Text="{Binding Path=RowHandle.Value,Converter={StaticResource rowIndicatorConverter}}"TextAlignment="Center"Foreground="Black"/></StackPanel></DataTemplate>public class RowIndicatorConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){try{if (value == null){return 0;}int num = (int) value;num = num + 1;return num;}catch (Exception ex){return 0;}}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return value != null && value.Equals(true) ? parameter : Binding.DoNothing;}}
2.ChartControl 使用
这块wpf和winform的实现还是有点区别的。
legend是图例,通过Orientation和VericalPosition来控制位置。AxisX和AxisY为X和Y轴。
<dxc:ChartControl x:Name="chartControl1" Grid.Column="1" Grid.Row="1"><dxc:ChartControl.Legend><dxc:Legend HorizontalPosition="Center" Orientation="Horizontal" VerticalPosition="TopOutside" FontSize="10" Background="White" Name="chartLegend"/></dxc:ChartControl.Legend><dxc:XYDiagram2D x:Name="xychart" EnableAxisXNavigation="True" EnableAxisYNavigation="True"><dxc:XYDiagram2D.ContextMenu><ContextMenu><MenuItem Name="miCopy" Header="拷贝到剪贴板" Click="miCopy_Click" /></ContextMenu></dxc:XYDiagram2D.ContextMenu><dxc:XYDiagram2D.AxisX><dxc:AxisX2D><dxc:AxisX2D.Title ><dxc:AxisTitle/></dxc:AxisX2D.Title></dxc:AxisX2D></dxc:XYDiagram2D.AxisX><dxc:XYDiagram2D.AxisY><dxc:AxisY2D><dxc:AxisY2D.Title ><dxc:AxisTitle/></dxc:AxisY2D.Title><dxc:AxisY2D.VisualRange><dxc:Range MaxValue="100" MinValue="0"></dxc:Range></dxc:AxisY2D.VisualRange><dxc:AxisY2D.WholeRange><dxc:Range MaxValue="100" MinValue="0"></dxc:Range></dxc:AxisY2D.WholeRange></dxc:AxisY2D></dxc:XYDiagram2D.AxisY></dxc:XYDiagram2D></dxc:ChartControl>
添加数据内容,可以为点(PointSeries2D),曲线(SplineSeries2D),或者饼状图(PieSeries2D)等
PointSeries2D series1 = new PointSeries2D();series1.DisplayName = featureType;series1.MarkerModel = new CircleMarker2DModel();series1.Brush = Brushes.Red;series1.MarkerSize = 5;
鼠标滚动来放大缩小图片是通过EnableAxisXNavigation和EnableAxisYNavigation,但是默认为true的话初始化后就有滚动条很难看,所以改为当滚轮滚动时,设置这两个值。
private void xychart_MouseWheel(object sender, MouseWheelEventArgs e){xychart.EnableAxisXNavigation = true;xychart.EnableAxisYNavigation = true;}
图片右键复制
private void miCopy_Click(object sender, RoutedEventArgs e){MemoryStream stream = new MemoryStream();chartControl1.ExportToImage(stream);System.Windows.Forms.Clipboard.Clear();System.Windows.Forms.Clipboard.SetImage(System.Drawing.Image.FromStream(stream));}
3.GridView.GetDataRow的替换
winform中为 DataRow drFocused = gvHistory.GetDataRow(gvHistory.FocusedRowHandle);
wpf替换为
DataRowView obj = gdXls.GetRow(firstRow - 1) as DataRowView;
DataRow fieldRow = obj.Row;
4.DocumentManager的替换
wpf中用DockLayoutManager 替换同时手动计算每个子窗口的位置(以三行两列为例)
<dxdo:DockLayoutManager Margin="12" Name="dockManager1"><dxdo:LayoutGroup Orientation="Horizontal"><dxdo:DocumentGroup x:Name="documentGroup" DockItemInterval="10" MDIStyle="MDI" Orientation="Vertical"></dxdo:DocumentGroup></dxdo:LayoutGroup></dxdo:DockLayoutManager>private void Window_Loaded(object sender, RoutedEventArgs e){for (int i = 0; i < 3; i++) {for (int j = 0; j < 2; j++) {documentGroup.Items.Add(CreateDocumentPanel(i,j));}}}private DocumentPanel CreateDocumentPanel(int i, int j) {double width = documentGroup.ActualWidth / 2;double height = documentGroup.ActualHeight / 3;DocumentPanel panel = new DocumentPanel(); panel.Name = "panel" + i + j;ucChart control=null;if (j == 0) {if (i == 0) {control = new ucChart(0);}else if (i == 1){control = new ucChart(3);}else if (i == 2){control = new ucChart(5); }}else if (j == 1){if (i == 0){control = new ucChart(2);}else if (i == 1){control = new ucChart(1);}else if (i == 2){control = new ucChart(4);}}if (control != null){panel.Content = control;}panel.MDISize = new Size(width,height);panel.MDILocation = new Point(j*width,i*height);return panel;}}
5.ImageList图片导出
winfrom中使用ImageList来存放资源,wpf切换时,需要把这些图片导出为png。
ImageList imageList = new ImageList();System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("img.ImageStream")));int i = 0;foreach (Image img in imageList.Images){img.Save(i+++".png",ImageFormat.Png);}
wpf devexpress相关推荐
- WPF DevExpress grid 设置自定义筛选栏的条件为包含关系
WPF DevExpress grid 设置自定义筛选栏的条件为包含关系 根据 DevExpress.Xpf.Grid改造 来源:CSDN 原文:https://blog.csdn.net/alis ...
- WPF DevExpress 主题包无法在别的电脑使用问题
WPF DevExpress 控件主题前台设置方式 dx:ThemeManager.ThemeName="Office2013" 后台更改主题方式: DevExpress.Xpf. ...
- 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(3月26日-3月31日)
分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(3月26日-3月31日) 本周Silverlight学习资源更新 Silverlight性能优化纪要-原作者Jo ...
- python 日期 格式转换 英文_python 中英文时间转换
WPF DevExpress 设置雷达图Radar样式 DevExpress中定义的ChartControl很不错,很多项目直接使用这种控件. 本节讲述雷达图的样式设置 删除Mysql数据表中多余的重 ...
- DevExpress v17.2新版亮点—WPF篇(四)
2019独角兽企业重金招聘Python工程师标准>>> DevExpress年终击穿底价,单套授权低至67折!仅剩最后6天!查看详情>>> 用户界面套包DevExp ...
- DevExpress v15.1:WPF控件升级(四)
2019独角兽企业重金招聘Python工程师标准>>> <下载最新版DevExpress WPF Controls v15.1.5> WPF编辑器 在Token编辑器中的 ...
- DevExpress WPF v18.2新版亮点(四)
行业领先的.NET界面控件2018年第二次重大更新--DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExpress WPF v18.2 的新 ...
- DevExpress v18.1新版亮点——WPF篇(五)
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载& ...
- DevExpress v18.1新版亮点——WPF篇(二)
2019独角兽企业重金招聘Python工程师标准>>> 用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevE ...
最新文章
- java tabpanel_java cs tab点击切换标签的实现 panel
- youtube根据channelId抓取栏目
- 黑龙江2020计算机一级考试时间,黑龙江2020年计算机等级考试报名时间汇总
- 组件注册——@ComponentScan自动扫描组件指定扫描规则
- 手把手教你用nestjs框架7分钟生成crud风格接口
- 如何计算一年总共有多少周_余额宝1万一天收益多少?如何计算?
- Python爬虫xpath详解
- python人工智能——深度学习——TensorFlow——图和会话
- libevent源码学习-----Reactor模型
- V记录2(文档)Vue.extend构造器
- python写sql语句_Python操作文件模拟SQL语句功能
- 快钱接口php,快钱支付接口
- linux vfs 根节点名称,Linux:文件,目录项,索引节点,超级块,VFS,具体文件系统...
- 2021-10-25 Vue异步操作
- 读书笔记-01大型网站架构演化的价值观
- Linux设备模型(总线、设备、驱动程序和类)
- 佳能G1810G2810G1800G2800G3800 废墨 手动清零方法
- Rancher hosted Kubernetes AKS
- 七牛云发送短信验证码
- 跑步,找到自己的节奏