找回密码
 立即注册

QQ登录

只需一步,快速开始

jxlxl

论坛元老

6

主题

16

帖子

1万

积分

论坛元老

积分
12112

活字格认证

jxlxl
论坛元老   /  发表于:2014-5-9 12:07  /   查看:15668  /  回复:17
求助大神

我用argetC1Chart.Actions.Add(new ZoomAction() { MouseButton = MouseButton.Left });在code behind 实现鼠标左键拖曳放大chart效果。 但是出现一个问题,就是放大到一定程度的时候chart的长度会自动改变。 我只需要放大X轴 不需要放大或显示Y轴。 找C1的客服问了好久也没得出个结论。我贴个sample上来。
XMAL:
  1. <Window x:Class="CONECHART.MainWindow"
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:System ="clr-namespace:System;assembly=mscorlib"
  5.         xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml"
  6.         Title="MainWindow" Height="350" Width="525">
  7.     <Grid>
  8.         <c1:C1Chart Margin ="0,0,8,8" MinHeight ="160" MinWidth ="240" Content ="C1chart" ChartType="Bar" Name="TargetC1Chart" c1:BarColumnOptions.Size="1" Padding="10">
  9.             <c1:C1Chart.Data>
  10.                 <c1:ChartData >
  11.                     <c1:ChartData.ItemNames>
  12.                         <x:Array Type="{x:Type System:String}">
  13.                             <System:String>Head Mixer</System:String>
  14.                             <System:String>Stand Mixer</System:String>
  15.                             <System:String>Can Opener</System:String>
  16.                             <System:String>Toaster</System:String>
  17.                             <System:String>Blender</System:String>
  18.                             <System:String>Food Processor</System:String>
  19.                             <System:String>Slow Cooker</System:String>
  20.                             <System:String>Microwave</System:String>
  21.                         </x:Array>
  22.                     </c1:ChartData.ItemNames>
  23.                     <c1:DataSeries Values="80 400 20 60 150 300 130 500" AxisX="Price" AxisY="Kitchen Elecronics" Label="Price"></c1:DataSeries>
  24.                 </c1:ChartData>
  25.             </c1:C1Chart.Data>
  26.             <c1:C1Chart.View>
  27.                 <c1:ChartView>
  28.                     <c1:ChartView.AxisX>
  29.                         <c1:Axis>
  30.                             <c1:Axis.ScrollBar>
  31.                                 <c1:AxisScrollBar />
  32.                             </c1:Axis.ScrollBar>
  33.                         </c1:Axis>
  34.                     </c1:ChartView.AxisX>
  35.                 </c1:ChartView>
  36.                 </c1:C1Chart.View>
  37. </c1:C1Chart>
  38.     </Grid>
  39. </Window>
复制代码

Code Behind:
  1. using System.Windows;
  2. using System.Windows.Input;
  3. using C1.WPF.C1Chart;

  4. namespace CONECHART
  5. {
  6.     /// <summary>
  7.     /// Interaction logic for MainWindow.xaml
  8.     /// </summary>
  9.     public partial class MainWindow : Window
  10.     {
  11.         public MainWindow()
  12.         {
  13.             InitializeComponent();
  14.             Init();
  15.         }

  16.         private void Init()
  17.         {
  18.                     TargetC1Chart.Actions.Clear();
  19.                     TargetC1Chart.Actions.Add(new ZoomAction() { MouseButton = MouseButton.Left });
  20.         }
  21.     }
  22. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

17 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-5-9 15:15:00
沙发
回复 1楼jxlxl的帖子

1 您要的效果是X轴变化:滚动还是放大?
2 您说的C1客服,是GCDN论坛里面的吗?

试试添加这行代码:

  1. LineAreaOptions.SetOptimizationRadius(TargetC1Chart, 2);
  2.                         
  3. TargetC1Chart.Actions.Clear();
复制代码


可参考的代码是随机带的demo:C:\Users\rogerwang\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.Chart\CS\ChartSamples\Performance
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-5-9 15:34:00
板凳
谢谢回复。
对于以上两个问题
1:想要的效果是 X轴方向的放大
2: C1的客服是C1官网的my support
我也参考过了C1安装后自带的demo 里面的chart也有同样的问题 就是不知道该怎么解决了
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-5-9 15:45:00
地板
回复 3楼还没想好的帖子




如demo所示,需要设置

  1. chart.View.AxisX.Scale = scale;
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-5-9 16:08:00
5#
我设置了scale没有用 我贴个C1自带sample的图吧
在C1自带的例子里面不明显 但确实有这个问题(它有设置sacale)\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.Chart\CS\AxisRangeSlider\AxisRangeSlider\XAxisDemo.xaml.cs
但是我自己的case里面非常明显

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-5-9 17:58:00
6#
回复 5楼还没想好的帖子

谢谢您的耐心配合。

我理解您目前的问题是这个样子的:如基于4#自带的demo中的Performance--Large Data。
当用鼠标或者点击右上角zoom按钮,X轴变大、变小,而Y轴没有发生变化。
您是期望要达到这样的效果吗?

如果是的话,我对比过您1#提供的代码,需要添加:

  1. LineAreaOptions.SetOptimizationRadius(TargetC1Chart, 2);  //限制Y轴不动

  2. chart.View.AxisX.Scale = scale; //X轴缩放
复制代码


请问,我的理解是否正确?
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-5-12 09:41:00
7#
谢谢回复
确实是想达到只放大缩小X轴方向 而Y轴不动。

我的问题是只想放大chart里面的series 而X轴的长度不变  现在的情况就是 当把series放大到一定程度时X轴的长度发生了改变 看起来整个chart的长度发生里改变(见上图)  给用户的感觉就是 chart忽长忽短的 造成很差的用户体验 请问怎么才可以使整个chart的大小固定
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-5-12 10:01:00
8#
我有2个wrf的videos也贴上来说明我的问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-5-12 12:46:00
9#
回复 8楼还没想好的帖子

抱歉,wrf文件,我下载了一个播放器,但是看不到内容。
请问您用的是什么播放器?
回复 使用道具 举报
还没想好
论坛元老   /  发表于:2014-5-12 14:30:00
10#
我是用一个叫ScreenRecorder的软件来做的这个 公司里面就只有这个做操作视屏 抱歉
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部