标记和标签。撕名牌大战(二):代码添加标记
在标记和标签的第一部分标记和标签。撕名牌大战(一),我们介绍了如何添加简单的绑定标记。而且代码都是实用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;
第六步:
设置ChartPanelObject的Content,DataPoint和Action属性,然后添加ChartPanelObject到ChartPanel。最后一行代码添加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初级教程》系列文章: