找回密码
 立即注册

QQ登录

只需一步,快速开始

rommyjob

高级会员

8

主题

19

帖子

1103

积分

高级会员

积分
1103

活字格认证

rommyjob
高级会员   /  发表于:2014-6-29 11:05  /   查看:4661  /  回复:3
问题描述:
    我想实现指定的交互方式:
1,使用鼠标滚轮(不配合任何额外按键)来实现Scale的功能。
2,关闭C1 Chart的Zoom功能(不允许画框缩放)。
3,当数据量比较多时,允许用户使用鼠标左键(不使用额外按键)来实现Translate功能,即允许用户用左键移动当前显示的数据。
4,关闭Rotate功能。

我使用的是官方Demo中的那种图表,即4个数据随X轴的变化趋势图。

我修改了官方的代码编译后试了下,下面的代码无法实现上述4条功能,请指点迷津,谢谢

  1.             // Enable interaction
  2.             c1Chart1.Interaction.Enabled = true;

  3.             c1Chart1.Interaction.IsDefault = false;//不和默认的相同

  4.             c1Chart1.Interaction.Actions["Zoom"].MouseButton = MouseButtons.None;
  5.             c1Chart1.Interaction.Actions["Zoom"].Modifier = Keys.None;

  6.             c1Chart1.Interaction.Actions["Scale"].Modifier = Keys.None;
  7.             c1Chart1.Interaction.Actions["Scale"].MouseButton = MouseButtons.Middle;

  8.             c1Chart1.Interaction.Actions["Translate"].Modifier = Keys.None;
  9.             c1Chart1.Interaction.Actions["Translate"].MouseButton = MouseButtons.Left;

  10.             c1Chart1.Interaction.Actions["Rotate"].MouseButton = MouseButtons.None;
  11.             c1Chart1.Interaction.Actions["Rotate"].Modifier = Keys.None;

  12.             c1Chart1.Interaction.Appearance = InteractionAppearance.Default;
复制代码

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-6-30 10:48:00
沙发
回复 1楼rommyjob的帖子

我把官方代码中Enable interaction那段用你的代码替换,测试后,你提到的4条功能已经实现。
在我这里的表现是:
1.MouseButton.Middle指的是鼠标中键,不是指滚轮滚动。当设置为MouseButton.Middle后,按下鼠标中键,然后在画框里拖拽,就可以实现Scale
2.我尝试了ctrl+滚轮滚动等方式,zoom已经被关闭。
3.鼠标左键往左或是往右拖拽,可以移动坐标轴。具体移动哪个坐标轴,可以用Actions["Translate"].Axis控制。
4.现在Alt键不能实现Rotate功能。
我的版本是:4.1.20141.311
环境是:VS2010

有关交互部分的解释,可以参考我们的中文技术文档:http://www.gcpowertools.com.cn/d ... ments/scalezoom.htm
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
rommyjob
高级会员   /  发表于:2014-6-30 11:13:00
板凳
回复 2楼Alice的帖子

谢谢Alice,第一条是我理解有误,滚轮应该是MouseWheel,不是middle。不过C1图表控件貌似不支持滚轮缩放,我指的缩放是缩放X轴。如果C1图表控件支持滚轮上推放大X轴,下推缩小X轴就好了。好多用户更习惯滚轮缩放。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-6-30 17:55:00
地板
回复 3楼rommyjob的帖子

你说我理解了意思,目前没有直接的设置。
不过C1提供Ctrl+mousewheel可以实现整个C1Chart的缩放。
另外C1Chart提供MouseWheel事件可以处理鼠标滚轮滚动的行为。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部