原創|使用教程|編輯:龔雪|2016-01-12 09:08:28.000|閱讀 641 次
概述:本文主要介紹如何在C1Chart for WPF中創建一個可以移動的線,使得當鼠標拖拽的時候,可以在Chart上自由移動。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
本文主要介紹如何在C1Chart for WPF中創建一個可以移動的線,使得當鼠標拖拽的時候,可以在Chart上自由移動。為了顯示拖拽的線,需要創建一個Marker。本文創建一條豎直的Marker,通過創建ChartPanelObject實現,將ChartPanelObject的Action屬性設置為LeftButtonDrag,實現鼠標左鍵的拖拽。
使用ChartPanelObject創建豎直的線,代碼參考:
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軸的數據。 實現鼠標左鍵的代碼參考:
var vmarker = CreateMarker(false); pnl.Children.Add(vmarker); vmarker.Action = ChartPanelAction.LeftMouseButtonDrag; chart.View.Layers.Add(pnl);
實現的效果如下:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網