WPF作图神器Interactive DataDisplay的初步使用

文章目录

安装

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格式,最后保存到文件中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值