原創(chuàng)|使用教程|編輯:龔雪|2016-01-12 09:08:28.000|閱讀 641 次
概述:本文主要介紹如何在C1Chart for WPF中創(chuàng)建一個(gè)可以移動(dòng)的線,使得當(dāng)鼠標(biāo)拖拽的時(shí)候,可以在Chart上自由移動(dòng)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
本文主要介紹如何在C1Chart for WPF中創(chuàng)建一個(gè)可以移動(dòng)的線,使得當(dāng)鼠標(biāo)拖拽的時(shí)候,可以在Chart上自由移動(dòng)。為了顯示拖拽的線,需要?jiǎng)?chuàng)建一個(gè)Marker。本文創(chuàng)建一條豎直的Marker,通過創(chuàng)建ChartPanelObject實(shí)現(xiàn),將ChartPanelObject的Action屬性設(shè)置為LeftButtonDrag,實(shí)現(xiàn)鼠標(biāo)左鍵的拖拽。
使用ChartPanelObject創(chuàng)建豎直的線,代碼參考:
ChartPanelObject CreateMarker(bool isHorizontal) { var obj = new ChartPanelObject(); var bdr = new Border() { BorderBrush = Background = new SolidColorBrush(Color.FromArgb(150, 255, 2, 2)), Padding = new Thickness(2), }; var tb = new TextBlock(); var bind = new Binding(); bind.Source = obj; if (isHorizontal) { bdr.BorderThickness = new Thickness(0, 4, 0, 0); bdr.Margin = new Thickness(0, -1, 0, 0); obj.HorizontalContentAlignment = HorizontalAlignment.Stretch; bind.StringFormat = "y={0:#.#}"; bind.Path = new PropertyPath("DataPoint.Y"); obj.DataPoint = new Point(double.NaN, 0.5); } else { bdr.BorderThickness = new Thickness(4, 0, 0, 0); bdr.Margin = new Thickness(-1, 0, 0, 0); obj.VerticalContentAlignment = VerticalAlignment.Stretch; bind.StringFormat = "x={0:#.#}"; bind.Path = new PropertyPath("DataPoint.X"); obj.DataPoint = new Point(2, double.NaN); } tb.SetBinding(TextBlock.TextProperty, bind); bdr.Child = tb; bdr.IsHitTestVisible = true; obj.Content = bdr; return obj; }
通過bind.Path = new PropertyPath("DataPoint.X"),讓這條拖拽的線展示X軸的數(shù)據(jù)。 實(shí)現(xiàn)鼠標(biāo)左鍵的代碼參考:
var vmarker = CreateMarker(false); pnl.Children.Add(vmarker); vmarker.Action = ChartPanelAction.LeftMouseButtonDrag; chart.View.Layers.Add(pnl);
實(shí)現(xiàn)的效果如下:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)