ComponentOne For WPF学习心得-缩放功能

ComponentOne For WPF学习心得-缩放功能

关于C1Chart

你这是我第一次接触到这种比较完善的图表控件,也没有系统的学习过,但因为工作原因要对大佬们写的代码进行优化,所以只能边用边学了,下面就是我学习C1Chart的一点心得,希望能帮助看文章的人,本文章适合有一定基础的同学。

C1Chart的缩放功能

我开始接收项目的时候,因为不是很了解,所以下意识以为缩放功能应该是图表自带的属性,像IsChecked,IsEnable…等,是一个可开关的属性。不幸的是,我想错了,在C1Chart中缩放功能是作为一个独立的功能块,需要声明,定义,创建,并add到图表对象中去。上代码

        C1Chart _chart;
        ZoomAction zoomAction;//声明
        
        public MainWindow()
        {
            InitializeComponent();
            _chart = C1Chart;

            zoomAction = new ZoomAction();//定义
            _chart.Actions.Add(zoomAction);//添加
        }

这就是最简单的缩放功能,但想要更好的使用缩放功能,就需要了解缩放功能的几个重要属性

Scale

摘要:获取或设置轴的比例。
备注:刻度应大于0且小于或等于1。比例指定显示最小值和最大值之间的范围的哪一部分。当比例为1(默认值)时,整个轴范围可见。

我对缩放功能有一个自己的理解,那就是缩放功能其实是一个显示窗口,鼠标事件指定的是窗口显示的范围,显示窗口的大小与原来一样,但是X和Y轴的范围变化,这个Scale就是 ”ZoomXZoomY(缩放后的XY轴范围相乘)/NormalXNormalY(原本的XY轴范围相乘)“

(tips:MinScale指定Scale的最小值,也是放大的最大值,若超过,则按最小范围来。)
上代码

        scaleX = Chart.View.AxisX.Scale;
        scaleY = Chart.View.AxisY.Scale;//获取

		Chart.View.AxisX.Scale = scaleX;
		Chart.View.AxisY.Scale = scaleY;//设置

		Chart.View.AxisX.MinScale = scaleX;
		Chart.View.AxisY.MinScale = scaleY;//设置最小值

Value

摘要:获取或设置轴的当前滚动位置。
备注:当比例小于1时,该值表示轴上的滚动位置,否则该值无效。该值应介于0和1之间。

这个属性要和图表的滚动轴联合起来用,这个属性的值就是滚动轴相对位置,最左边为0,最右边为1。

上代码

        valueX = Chart.View.AxisX.Value;
        valueY = Chart.View.AxisY.Value;//获取

		Chart.View.AxisX.Value = valueX;
		Chart.View.AxisY.Value = valueY;//设置

这就是C1Chart中缩放功能的基础内容

实战运用

上代码

        private void chart_mouseleftbuttondown(object sender, mousebuttoneventargs e)
        {
            system.windows.point pnt = e.getposition(chart);
            system.windows.point dpt = chart.view.pointtodata(pnt);
            pointdown = dpt;
            index = 1;

            valuesx = chart.view.axisx.value;//当前显示的范围
        }

        private void chart_mouseleftbuttonup(object sender, mousebuttoneventargs e)
        {
            chart.view.axisx.value = 0.5;
            chart.view.axisy.value = 0.5;//使图表的显示内容,一直是中心
            scalex = chart.view.axisx.scale;
            scaley = chart.view.axisy.scale;//获取缩放的范围
            index = 0;

            if (scalex == 0.1)
            {
                chart.view.axisx.value = valuesx;
                console.writeline(valuesx);
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值