コード例 #1
0
        /// <summary>
        /// Position PointChartItem
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void OnItemUnitPointChangedEvent(object sender, RoutedEventArgs e)
        {
            PointChart     pointChart     = sender as PointChart;
            PointChartItem pointChartItem = e.OriginalSource as PointChartItem;

            pointChart.UpdatePosition(pointChartItem, pointChart.ItemContainerGenerator.IndexFromContainer(pointChartItem));
        }
コード例 #2
0
        /// <summary>
        /// Recalc x y in pixel
        /// </summary>
        /// <param name="d">PointChartItem</param>
        /// <param name="e">DependencyPropertyChangedEventArgs</param>
        private static void PointPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            PointChartItem self = d as PointChartItem;

            if (!self.internalIsLoaded)
            {
                return;
            }

            self.RaiseEvent(new RoutedEventArgs(PointChartItem.UnitPointChangedEvent, self));
        }
コード例 #3
0
        /// <summary>
        /// Update point chart item position
        /// </summary>
        /// <param name="pointChartItem">PointChartItem</param>
        private void UpdatePosition(PointChartItem pointChartItem, int index)
        {
            if (PartDrawingArea == null || !internalIsLoaded)
            {
                return;
            }

            //Debug.WriteLine("UpdateSingle");

            Point newPos = MathHelpers.ConvertUnitToPixelPoint(
                new Point(pointChartItem.XUnitValue, pointChartItem.YUnitValue),
                new CommonLibrary.Util.DrawingContext()
            {
                DrawingSize = PartDrawingArea.RenderSize,
                XMaximum    = XMaximum,
                XMinimum    = XMinimum,
                YMaximum    = YMaximum,
                YMinimum    = YMinimum
            });

            Canvas.SetLeft(pointChartItem, newPos.X);
            Canvas.SetTop(pointChartItem, newPos.Y);

            if (PartLine == null)
            {
                return;
            }

            if (index < PartLine.Points.Count)
            {
                PartLine.Points.RemoveAt(index);
            }

            PartLine.Points.Insert(index, newPos);

            //Debug.WriteLine("Draw");
        }