首页 新闻 会员 周边 捐助

WPF Chart控件的一个使用问题(高人勿入)

0
悬赏园豆:50 [已解决问题] 解决于 2015-10-12 17:51

大家好:我是WPF新手(其实也用了好几个月了,但一直没空细细研究WPF),使用的是Toolkit里的那个Chart控件,运行起来的效果如下:

我的问题是:为什么纵坐标有2个0.06

以下是xaml代码:

<Window x:Class="FuckChart.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:chart="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <chart:Chart Title="Test" Name="chart">
            <chart:LineSeries  Name="line"  ItemsSource="{Binding Data}" IndependentValueBinding="{Binding Key}" DependentValueBinding="{Binding Value}" >
            </chart:LineSeries>
        </chart:Chart>
    </Grid>
</Window>

ViewModel的代码:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
using System.Text;

namespace FuckChart
{
    class ViewModel
    {
        public ViewModel()
        {
            this.Data = new ObservableCollection<System.Collections.Generic.KeyValuePair<int, decimal>>();

            this.Data.Add(new System.Collections.Generic.KeyValuePair<int, decimal>(1, 0.07m));
            this.Data.Add(new System.Collections.Generic.KeyValuePair<int, decimal>(2, 0.06m));
            this.Data.Add(new System.Collections.Generic.KeyValuePair<int, decimal>(3, 0.05m));
        }

        public ObservableCollection<System.Collections.Generic.KeyValuePair<int,decimal>> Data { get; set; }
            
    }
}

如果纵坐标的值大于大于等于0.1就没这个问题。我想应该是存在一个设置纵坐标间距之类的属性吧,但是这个类里属性实在太多,没有找到,上网也没有查到,麻烦各位园友来看看。谢谢

问题补充:

附上项目问题:http://files.cnblogs.com/files/zzy0471/FuckChart.rar

会长的主页 会长 | 专家六级 | 园豆:12463
提问于:2015-10-12 15:12
< >
分享
最佳答案
1

个人怀疑以上的0.05 0.06 0.06 0.07 0.07 其实为0.050 0.055 0.060 0.065 0.070,因为显示位数问题四舍五入了。可以考虑一下把这个类型 decimal 换成其他的。

收获园豆:50
军号的备忘录 | 菜鸟二级 |园豆:236 | 2015-10-12 15:35

我试过float和double也是这样的。总不能转换为string吧。:-D

会长 | 园豆:12463 (专家六级) | 2015-10-12 15:36

@会长: 没用过chart,应该可以在XAML设置纵坐标显示样式解决。

军号的备忘录 | 园豆:236 (菜鸟二级) | 2015-10-12 15:48

@会长: http://www.cnblogs.com/HQFZ/p/4424249.html 第4点改变样式可以看一下,应该能解决问题。

军号的备忘录 | 园豆:236 (菜鸟二级) | 2015-10-12 15:56

@军号的备忘录: 好的,我试试,谢谢

会长 | 园豆:12463 (专家六级) | 2015-10-12 16:31

@会长: 通过设置样式可以解决问题,原来默认最多就显示2位小数,谢谢阁下。

会长 | 园豆:12463 (专家六级) | 2015-10-13 09:49
其他回答(3)
0

不清楚,顶一手

+小马哥++ | 园豆:906 (小虾三级) | 2015-10-12 15:40
0

chart2.ChartAreas[0].AxisY.LabelStyle.Format //格式化
chart2.ChartAreas[0].AxisY.Interval //设置刻度间隔

这2个Y的属性你去试试

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-12 16:01

我用的不是这个chart控件,你说的这个是winform里用的吧,我用的是这个:http://blogs.msdn.com/b/wpfsdk/archive/2009/06/25/new-chart-controls-for-wpf.aspx

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2015-10-12 16:30

@会长: 那你也去找找他的属性把,我看你默认的是5格,可是你就传了3个参数给它

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-12 16:32

@稳稳的河: 好的,多谢了,昨天已经把问题解决了

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2015-10-13 09:50
0

我能说在我电脑上直接打开运行你的源文件,毫无这个问题!!!!

JackWang-CUMT | 园豆:2866 (老鸟四级) | 2015-10-12 17:11

 不好意思,我那代码可能让我改了些,数字设置的小点试试:

      this.Data.Add(new System.Collections.Generic.KeyValuePair<int, decimal>(1, 0.07m));
            this.Data.Add(new System.Collections.Generic.KeyValuePair<int, decimal>(2, 0.06m));
            this.Data.Add(new System.Collections.Generic.KeyValuePair<int, decimal>(3, 0.05m));
支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2015-10-12 17:45

我重新上传了一次又,如果有兴趣可以再看看,谢谢。

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2015-10-12 17:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册