文章目录

  • 安装
  • 初步使用

安装

Interactive DataDisplay是一款比较优秀的C#绘图控件,尽管与一些商业控件还有不小的差距,关键是开源免费轻量。

在VS中安装控件十分简单,本测试基于Net Core5.0,在VS的菜单栏->工具->NuGet包管理器->管理解决方案的NuGet程序包->在浏览选项卡的搜索框里输入Interactive DataDisplay,找到InteractiveDataDisplay.NetCore.WPF,然后安装。

这个名太长了,后文简称IDD包。

初步使用

首先在xaml文件的最顶层标签中加入IDD的引用,一般写为
xmlns:d3="clr-namespace:InteractiveDataDisplay.WPF;assembly=InteractiveDataDisplay.WPF", 例如在主窗口的xaml文件中引用,其添加位置为

<Window x:Class="winTools.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
...
xmlns:d3="clr-namespace:InteractiveDataDisplay.WPF;assembly=InteractiveDataDisplay.WPF"
Title="myTest" Height="450" Width="800">

调用时可以写为

<d3:Chart Height="300" Width="600" Margin="10" x:Name="chartData"><d3:LineGraph x:Name="lineNowData" Stroke="Blue" StrokeThickness="1"/>
</d3:Chart>

其中,d3:Chart表示创建一个图表控件;d3:LineGraph表示在图表控件中添加一个曲线图。Stroke表示曲线的颜色,StrokeThickness表示曲线的粗细。

接下来在后端的.cs文件中写入数据,下面的x是一个从0到10,间隔为0.1的数组,ysin(x)

void initGraph()
{var x = Enumerable.Range(0, 100).Select(i => i / 10.0).ToArray();var y = x.Select(i =>Math.Sin(i)).ToArray();lineNowData.Plot(x, y);
}

使之在窗口初始化的时候加载,就可以得到如图所示的图像

通过RenderTargetBitmap可以对图像进行保存:新建一个按钮,挂载Click函数,定义如下

private void btnSave_Click(object sender, RoutedEventArgs e)
{var width = chartData.Width + 10;var height = chartData.Height + 10;RenderTargetBitmap bmp = new RenderTargetBitmap((int)width, (int)height, 96, 96, PixelFormats.Pbgra32);bmp.Render(chartData);var encoder = new PngBitmapEncoder();encoder.Frames.Add(BitmapFrame.Create(bmp));using Stream stm = File.Create(@"E:\Pictures\testIDD.png");encoder.Save(stm);
}

其中bmp为位图格式,通过bmp.RendercharData进行绘制,最终通过PngBitmapEncoder将其编辑为png格式,最后保存到文件中。

WPF作图神器Interactive DataDisplay的初步使用相关推荐

  1. 轻量级作图神器Typora

    轻量级作图神器Typora,小白秒变大神 你好!今天是2022年3月27日,这是我的处女作,望大家多多支持! Mermaid 是一个用于画流程图.状态图.时序图.甘特图的库,使用 JS 进行本地渲染, ...

  2. 【安利】程序猿作图神器 - Graphviz

    还在为在linux下画二叉树等图苦恼吗,现在就安利一波linux程序猿的作图神器--Graphviz.(本来在写其他东西,刚好要绘图,强行插入一篇blog) Graphviz (Graph Visua ...

  3. 推荐一款作图神器:ProcessOn

    本人近日发现一款作图神器:ProcessOn 它是一款在线的作图工具,完全国产,前台是用HTML5  Canvas加javascript做绘图,后台用java实现数据处理和图片生成, 整站UI基本类似 ...

  4. 亲测的一款在线作图神器:ProcessOn

    本人近日发现一款作图神器:ProcessOn 它是一款在线的作图工具,完全国产,前台是用HTML5  Canvas加javascript做绘图,后台用java实现数据处理和图片生成, 整站UI基本类似 ...

  5. 作图神器ProcessOn - 免费好用

    因工作需要,我经常需要花一些流程图,时序图,架构图什么的,之前使用的Windows系统,大部分情况下就用的Visio来画图.后来为了工作方便,换成了Mac电脑,结果发现Mac上没有Visio,然后就在 ...

  6. draw.io 开源矢量图作图神器的骚操作

    初识 draw.io 使用 draw.io 的日常 制图 计划流程 整理逻辑 开始逐渐离谱 完全文本格式粘贴 变态高效快捷键 超文本 HTML 支持 主题?想怎么改就怎么改 参考/扩展 初识 draw ...

  7. 作图神器Graphviz——学习数据结构的好帮手

    Graphviz 1. 基本语法 补充 2. 编译运行 3. 一些例子 3.1 一个简单的二叉树    官网下载好对应系统的版本并安装 ,在terminal中输入 dot -version可以检查安装 ...

  8. Excel图表神器EasyShu2.9,堪称作图神器,主流好看专业有颜值的图表一键出图

    EasyShu算是一款不错的良心软件,以Excel插件形式提供,在Excel上完成数据处理.分析,然后接着一键出图, 这个体验不能再好. 提前说明,它是付费性插件,但良心的是所有辅助类功能全免费,大量 ...

  9. 不需要PS也能作图,3款简单操作就可上手的在线作图神器

    现在互联网的快速发展,各种各样的在线工具https://www.zhaotu.com/也层出不穷,只要有网络的存在,那么什么事情基本上都能办到.图片设计也是一样的,以前需要专业的技术,专业的人才才能够 ...

最新文章

  1. Datawhale组队学习 Task03:栈与递归(2天)
  2. c语言整形提升规则,C语言进阶:整型提升
  3. 在红帽中安装oracle,在红帽企业Linux 5.4中安装Oracle Database 10g
  4. 使用Xib解决1px线条绘制的一些方法
  5. ADSL(Asymmetric Digital Subscriber Loop)技术
  6. Boost:circular_buffer作为边界缓冲区的基础容器
  7. hp代码改成linux代码,HP Database Archiving Software远程任意代码执行漏洞
  8. 输出100之间的所有质数(素数)
  9. emacs coding UTF-8 保存报错
  10. 相关矩阵的可视化及其新方法探究
  11. 航大之星礼仪大赛结束,欣赏现场抓图。
  12. C语言冒泡排序代码示例
  13. 一个超简单的油猴脚本!
  14. 关于breadcrumb面包屑
  15. OpenWrt 一个关于IPv6巨傻X的设置项
  16. linux系统文件复制过程时长,Linux系统I/O操作与零拷贝
  17. XXE漏洞详解(三)——XXE漏洞实际运用
  18. 攻略-联想 Yoga 900 安装 Arch Linux 系统
  19. 2022 开启新的篇章,越努力越幸运
  20. SQL2000有文件挂起问题

热门文章

  1. 怎么画计算机系统时空图,计算机系统结构中流水线的时空图怎么画
  2. CoreData单表
  3. 9岁有赞:新零售业务快速增长 推新品牌扶持计划
  4. java越野车架_越野怪兽 JAVA摆渡人 (ANIMA)山地车
  5. 2021-2027全球与中国连续式网带炉市场现状及未来发展趋势
  6. lisp画靶子 visual_9月编程语言排行榜:PHP首超C++ 挺进前三甲
  7. 通量数据处理(Python)——NC格式转为CSV格式
  8. ERA5-Land hourly data数据直接计算出来数据量偏大,monthly单位等
  9. 电脑出现Checking media....解决方法
  10. 当程序员这么多年,我学到了25条人生经验