如题,由于项目需要,X轴是时间轴,比较长,而Y轴值相对固定,而DynamicDataDisplay提供的Zoom方法是实现同时缩放的。只好研究DynamicDataDisplay提供的源代码了。
不难发现,源代码CoordinateUtilities中,提供了单独缩放X轴的方法,RectExtensions中也是都提供了相应的调用,但是发现缩放实现时都只调用了Zoom的方法。
1、于是将Zoom的调用
public static Rect Zoom(this Rect rect, Point to, double ratio)
{
return CoordinateUtilities.RectZoom(rect, to, ratio);
}
直接改为(不需要放大Y轴)
public static Rect Zoom(this Rect rect, Point to, double ratio)
{
//贾世义取消y轴缩放
return CoordinateUtilities.RectZoomX(rect, to, ratio);
}
测试发现,虽然Y轴不再放大了,但是图像的高度还是随着放大。继续研究源码
2、发现IViewport2DExtensions接口中定义了Zoom方法,
于是试着将Vector halfSize = new Vector(visible.Width * factor / 2, visible.Height* factor / 2)
改为 Vector halfSize = new Vector(visible.Width * factor / 2, visible.Height / 2);//* factor 贾世义取消y轴缩放
问题解决。
试用请登录http://121.18.78.216/