C1Chart for WPF轴:ToolTip显示鼠标所在位置的日期信息

发布时间:2015/09/28 00:09 发布者:Alice

返回博客中心

C1Chart for WPF轴:ToolTip显示鼠标所在位置的日期信息

在上一章日期轴的显示中,我们介绍了如何设置X轴为日期类型。

本文就在此基础上,介绍如何展示日期类型的Tooltip。

添加标记标签

在添加标记标签前,请阅读代码添加标记文章,按照文章所示内容给图表添加标记。

按照提示的步骤通过如下代码给图表添加标记,使得鼠标Hover的时候,可以显示数据信息。

var sp = new StackPanel();
            var tb1 = new TextBlock();
            var bind1 = new Binding();
            bind1.Source = obj;
            bind1.StringFormat = "x={0:#.##}";
            bind1.Path = new PropertyPath("DataPoint.X");
            tb1.SetBinding(TextBlock.TextProperty, bind1); 
 
            var tb2 = new TextBlock();
            var bind2 = new Binding();
            bind2.Source = obj;
            bind2.StringFormat = "y={0:#.##}";
            bind2.Path = new PropertyPath("DataPoint.Y");
            tb2.SetBinding(TextBlock.TextProperty, bind2); 
 
            sp.Children.Add(tb1);
            sp.Children.Add(tb2); 
 
            bdr.Child = sp;

但是由于X轴是日期轴(OADate),此时节点的换算会不正确。 对于这个问题,需要自定义一个DateConverter。

 

DateConverter

从IValueConverter接口继承,自定义Datetime的Converter,将doulbe的value转成DateTime类型。

这里需要用到DateTime.FromOADate方法进行转换。

参考如下:

public class DateTimeConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            double v = (double)value;
            DateTime dt;
            if (!double.IsNaN(v))
            {
                dt = DateTime.FromOADate(v);
            }
            else
            {
                dt = DateTime.Now;
            }
            return dt;
        

        }



        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {

            throw new NotImplementedException();

        }

    }

 

给Binding设置converter

这个时候需要第一步里添加的标记标签的代码进行更改,给X轴设置我们上一步实现的Converter。

代码参考:

var bind1 = new Binding();
            bind1.Source = obj;
            bind1.StringFormat = "x={0:yyyy/MM/dd}";
            bind1.Converter = new DateTimeConverter();
            bind1.Path = new PropertyPath("DataPoint.X");

 

实现的效果如下:

 

示例参考:

ChartWPF_DateTooltip.zip (17.01 kb)

 

更多资源

C1Chart的在线英文产品文档地址: 

http://helpcentral.componentone.com/nethelp/c1wpfchart/#!Documents/componentonechartforwpf.htm

 

如果你对C1Chart感兴趣,请到我们的官网下载最新版本:/developer/componentone-winform/controls/chart

如果你有疑问,可以到GCDN论坛获得技术支持:http://gcdn.grapecity.com.cn/showforum-68.html

 

另外,更多信息,欢迎阅读《C1Chart for WPF初级教程》系列文章

初遇。Getting Started(上)

初遇。Getting Started(下)

类型。穿Prada的女王(上)

类型。穿Prada的女王(下)

数据。和数据源相关的那些事(一)

数据。和数据源相关的那些事(二)

数据。和数据源相关的那些事(三)

数据。和数据源相关的那些事(四)

标记和标签。撕名牌大战(一)

标记和标签。撕名牌大战(二)

标记和标签。撕名牌大战(三)

导出(PDF,EXCEL) 

多轴图表 

轴的动态绑定

实现轴注释的高级自定义

颜色和大小。数据点的自定义(一)

符号。数据点的自定义(二)

基础介绍。XAML动画(一)

基础介绍。XAML动画(二)

基础介绍。XAML动画(三)

基础介绍。XAML动画(四)


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网