jacky_zh 发表于 2016-7-14 10:59:32

无法在X轴给最小值赋值

1

2
以上两张图我是我遇到的问题,无论_min怎么赋值。 chart.View.AxisX.Min值不变。当第二次单击的时候,又正确了。在点击的时候有不正确了。


调用附件里的代码:

public void BindOverViewGraph(List<ISuperDevice> devices)//这就是我每次单击生成chart的入口
      {
            if (_userControl != null)
            {
                if (devices != null)
                {
                  StretchChart stretch = _userControlStrech.FindName("stretchChart") as StretchChart;
                  C1Chart chart = stretch.FindName("chart") as C1Chart;
                  C1Chart chartZoom = _userControl.FindName("chartZoom") as C1Chart;
                  GraphChart.SetGraphChart(devices);
                  GraphChart.SetChart(chart);
                  GraphChart.SetChartZoom(chartZoom);
                }
            }

}

Alice 发表于 2016-7-14 15:59:54

jacky_zh 发表于 2016-7-14 15:39
DataSeries ds = new DataSeries();
                Axis ay = new Axis();
                ay.AxisT ...

ValuesSource可以设置数组,代码参考:
// Clear previous data
chart.Data.Children.Clear();
double[] values = { 1, 4, 9, 16 };
// Create column series
chart.Data.Children.Add(new DataSeries()
{
ValuesSource = values
});

数据源绑定请参考产品博客,链接如下(里面有提供代码和示例):
http://blog.gcpowertools.com.cn/post/2015/03/19/ChartWPF_DataBinding1.aspx

Alice 发表于 2016-7-14 11:40:38

谢谢您的反馈。
如果您需要自定义Max/Min属性的值,首先需要将AxisX.AutoMax/AutoMin设置为false。

另外对于您代码中的动态绑定数据,可以参考我们的产品博客:
http://blog.gcpowertools.com.cn/post/2014/07/26/C1Chart_seriesItemsSource.aspx

jacky_zh 发表于 2016-7-14 11:59:57

Alice 发表于 2016-7-14 11:40
谢谢您的反馈。
如果您需要自定义Max/Min属性的值,首先需要将AxisX.AutoMax/AutoMin设置为false。



我按照你说的方法,设置false。但是还是不行。

Alice 发表于 2016-7-14 12:08:05

本帖最后由 Alice 于 2016-7-14 12:11 编辑

jacky_zh 发表于 2016-7-14 11:59
我按照你说的方法,设置false。但是还是不行。我这里测试动态的修改Max/Min属性,都是起作用的。

您的Demo我这里无法运行调试,看不到效果。
建议您 提供一个可以重现该问题的Demo,我帮您调试下。

jacky_zh 发表于 2016-7-14 12:13:12

Alice 发表于 2016-7-14 12:08
我这里测试动态的修改Max/Min属性,都是起作用的。

您的Demo我这里无法运行调试,看不到效果。


我能加你扣扣远程调试一下吗?谢谢您

Alice 发表于 2016-7-14 12:22:56

jacky_zh 发表于 2016-7-14 12:13
我能加你扣扣远程调试一下吗?谢谢您

很抱歉我们目前不提供QQ远程技术支持。

你可以参考我给您发的链接中的示例,也可以将您的问题发一个可以重现的Demo给我,我帮您看看。

jacky_zh 发表于 2016-7-14 13:07:21

            Axis x = new Axis();
            x.Min = _min;
            x.Max = _max;
            x.IsTime = true;
            x.AnnoPosition = AnnoPosition.Auto;
            x.AnnoFormat = "yyyy/MM/dd:HH:mm:ss";
            x.MinorTickHeight = 0;
            chart.View.AxisX = x; 这样写就对了,重新new Axis ()然后把这个对象给chart就可以了。哎

Alice 发表于 2016-7-14 13:42:56

jacky_zh 发表于 2016-7-14 13:07
Axis x = new Axis();
            x.Min = _min;
            x.Max = _max;


谢谢您的反馈。

jacky_zh 发表于 2016-7-14 15:39:11

DataSeries ds = new DataSeries();
                Axis ay = new Axis();
                ay.AxisType = AxisType.Y;
                ay.Min = 0d;
                ay.Max = 100d;
                ay.Name = "humidityZoom";
                ay.Position = AxisPosition.Far;
                ds.ConnectionStroke = new SolidColorBrush(Colors.Green);
                ds.ValuesSource = humidity;
                ds.ChartType = ChartType.Line;
                chart.View.Axes.Add(ay);
                chart.Data.Children.Add(ds);
humidity是个double类型数组。可以吗,我发现我这个貌似不可以
页: [1]
查看完整版本: 无法在X轴给最小值赋值