工程下载页面:https://download.youkuaiyun.com/download/weixin_40185666/11453697
前言
一直需要一个能够满足需求的曲线显示控件,在网上找了很多,有的是功能过于单一,有的是无法提供二次开发,有的是设计炫酷但是收费……dynamicdatadisplay应该算是比较早的一个开源库吧?外形朴素而且功能也很强大。我花费了一段时间对它进行了摸索,发现真的是好用,制作出来的曲线显示控件也是非常好用,实现了以下几个功能:
1. 收缩显示与滚动显示的无缝切换;
2. Y轴根据当前视窗内的极值自动进行调整,以保证能够看到当前视窗内的全部曲线;
3. 双Y轴显示,X轴共用,两边Y轴完全独立;
4. 可隐藏指定曲线,Y轴范围随之变化;
5. 滚动模式下,视窗宽度可调整;
6. 曲线数据显示可暂停,以方便分析,后台继续更新,点击继续立刻刷新;
7. 鼠标按住左键左右Y轴曲线同步拖动;
8. 滚轮滚动左右Y轴曲线同步拖动;
9. ctrl+框选左右Y轴曲线同步放大;
10. XML实现曲线点数据文件读取并显示;
11. legend显示隐藏等细节设计
仔细一想才发现自己做的还挺多的,哈哈~感谢dynamicdatadisplay提供的强大开发接口,让我可以按照自己的想法实现了这些功能。其实实现起来不是很难,就是简单的计算,不过在摸索接口和调试方面的确蛮花时间的。而且在已有的数据管理基础上进行开发,我面向的只是一张张数据表。
先上一张测试界面:
花费了一些时间还是值得的,做出来的效果也还不错,对于提高工作效率和体验也是有帮助的。
XAML代码
<d3:ChartPlotter x:Name="outerchart" Margin="5,15,5,5" LegendVisibility="Visible" MouseMove="outerchart_MouseMove">
<d3:InjectedPlotter x:Name="innerchart" Background="Aqua" SetViewportBinding="False" LegendVisibility="Hidden" NewLegendVisible="False" Margin="5">
<d3:VerticalAxis Placement="Right" x:Name="yAxisR"/>
<d3:AxisNavigation Placement="Right"></d3:AxisNavigation>
<d3:VerticalAxisTitle Content="rightYaxis" Placement=