← 返回所有博客文章

标记和标签。撕名牌大战(二):代码添加标记

在标记和标签的第一部分标记和标签。撕名牌大战(一),我们介绍了如何添加简单的绑定标记。而且代码都是实用XAML markup来实现的。

有的客户经常使用的是代码,本文就在第一部分的基础上,演示如何使用C#代码完成这些事情。

 

第一步:

添加C1Chart到页面。

你可以拖拽一个C1Chart到页面,也可以实用代码在cs文件里添加。有关如何在cs文件里通过代码添加C1Chart,请参考本系列的第一章的内容:初遇。Getting Started(上)

 

第二步:

通过代码创建一个新的ChartPanel

var pnl = new ChartPanel();

 

第三步:

完成第二步后,就可以添加一个新的ChartPanelObject然后设置它的方向。

var obj = new ChartPanelObject()
 {    HorizontalAlignment = HorizontalAlignment.Right,    VerticalAlignment = VerticalAlignment.Bottom
 };

 

第四步:

添加一个border元素:

var bdr = new Border()
{
Background = new SolidColorBrush(Colors.Green) { Opacity = 0.4 }
BorderBrush = new SolidColorBrush(Colors.Green),
BorderThickness = new Thickness(1, 1, 3, 3),
CornerRadius = new CornerRadius(6, 6, 0, 6),
Padding = new Thickness(3)
};

 

第五步:

添加一个StackPanel元素包含两个TextBlock控件,注意它绑定了ChartPanelObject数据源。

代码参考:

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;

 

第六步:

设置ChartPanelObjectContentDataPointAction属性,然后添加ChartPanelObjectChartPanel。最后一行代码添加layers集合到C1Chart控件。

obj.Content = bdr;
obj.DataPoint = new Point();
obj.Action = ChartPanelAction.MouseMove;
pnl.Children.Add(obj);

chart.View.Layers.Add(pnl);

 

第七步:

最后一行代码需要设置Attach属性。

obj.Action = ChartPanelAction.MouseMove;

 

如上代码,就可以创建一个图表的标记,随着鼠标位置而变换。

在图表上鼠标移动,就会显示相应数据的标记。

 

本文的详细代码如下C#示例所示:

ChartWPF_MarkCode.zip (319.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动画(四)