现在的一个项目要用到动态图表,网上找到开源的DynamicDataDisplay,有些小地方不满足需求,图例是斜线,客户要求要求横线,原来的程序横坐标是压缩的,客户要求直线固定区间的曲线图,
DynamicDataDisplay DynamicDataDisplay v0.3 Source 源码下载地址
1.修改图列,这个是在XAML中写死的,只有一个字"改"!
找到\DynamicDataDisplay v0.3 Source\src\DynamicDataDisplay\Charts\LineLegendItem.xaml文件,找到第11行,
<Line X1="3" X2="20" Y1="10" Y2="5"
Stroke="{Binding Pen.Brush}"
StrokeThickness="{Binding Pen.Thickness}"/>
大家可以看到,这就是图例的绘制,修改y2=10,或者修改y1也行,只要纵坐标相同就行了.例如:
<Line X1="3" X2="20" Y1="10" Y2="10"
Stroke="{Binding Pen.Brush}"
StrokeThickness="{Binding Pen.Thickness}"/>
效果图:
2.保持固定的显示区间,这个也修改源代码,作简单修改就行了.
找到\DynamicDataDisplay v0.3 Source\src\DynamicDataDisplay\Viewport2D.cs,定位到165行,
原始代码:
if (!bounds.IsEmpty)
{
bounds = bounds.DataToViewport(transform);
}
修改后的代码为(始终保持10个单位的区间):
if (!bounds.IsEmpty)
{
bounds.X = bounds.Right - 10;
bounds.Width = 10;
bounds = bounds.DataToViewport(transform);
//bounds = bounds.DataToViewport(transform);
}
效果图: