void UpdateLabels()
 {
     if (_loaded)
     {
         if (Chart != null)
         {
             var state = new ChartState(Chart);
             if (!state.Equals(_state))
             {
                 Debug.WriteLine("ChartLabels_LayoutUpdates -> Render");
                 _state = state;
                 Render();
             }
         }
     }
 }
Ejemplo n.º 2
0
 void UpdateLabels()
 {
     if (_loaded)
       {
     if (Chart != null)
     {
       var state = new ChartState(Chart);
       if (!state.Equals(_state))
       {
     Debug.WriteLine("ChartLabels_LayoutUpdates -> Render");
     _state = state;
     Render();
       }
     }
       }
 }
Ejemplo n.º 3
0
        void Render()
        {
            if (!_loaded || UpdateCount > 0)
            return;

              if (Chart != null)
              {
            var prect = Chart.View.PlotRect;
            var bnds = new Rect(0,0,prect.Width, prect.Height);
            bnds.Inflate(1, 1);

            var offset = Chart.TranslatePoint(new Point(), (UIElement)this.Parent);
            offset.X = prect.X - offset.X;
            offset.Y = prect.Y - offset.Y;

            foreach (var label in Children)
            {
              if (!base.Children.Contains(label))
            base.Children.Add(label);
              var line = label.ConnectingLine;
              if (!base.Children.Contains(line))
            base.Children.Add(line);

              if (!Chart.ChartType.ToString().StartsWith("Pie"))
              {
            label.UpdateAttachPoint(Chart, offset);

            if (bnds.Contains(label.AttachPoint))
              label.Visibility = Visibility.Visible;
            else
              label.Visibility = Visibility.Collapsed;
              }
              else
            label.UpdateAttachPoint(Chart, new Point());
            }

            if (LabelArranger != null)
              LabelArranger.Arrange(Children.ToArray(), OccupiedRects, new Rect(0, 0, prect.Width, prect.Height));

            foreach (var label in Children)
            {
              var line = label.ConnectingLine;
              var pt = label.AttachPoint;

              line.X1 = pt.X; line.Y1 = pt.Y;

              var pt1 = LabelHelper.GetConnectingPoint(label);

              if (!double.IsNaN(pt1.X) && !double.IsNaN(pt1.Y))
              {
            line.X2 = pt1.X; line.Y2 = pt1.Y;
              }
            }

            _state = new ChartState(Chart);
              }
        }
        void Render()
        {
            if (!_loaded || UpdateCount > 0)
            {
                return;
            }

            if (Chart != null)
            {
                var prect = Chart.View.PlotRect;
                var bnds  = new Rect(0, 0, prect.Width, prect.Height);
                bnds.Inflate(1, 1);

                var offset = Chart.TranslatePoint(new Point(), (UIElement)this.Parent);
                offset.X = prect.X - offset.X;
                offset.Y = prect.Y - offset.Y;

                foreach (var label in Children)
                {
                    if (!base.Children.Contains(label))
                    {
                        base.Children.Add(label);
                    }
                    var line = label.ConnectingLine;
                    if (!base.Children.Contains(line))
                    {
                        base.Children.Add(line);
                    }


                    if (!Chart.ChartType.ToString().StartsWith("Pie"))
                    {
                        label.UpdateAttachPoint(Chart, offset);

                        if (bnds.Contains(label.AttachPoint))
                        {
                            label.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            label.Visibility = Visibility.Collapsed;
                        }
                    }
                    else
                    {
                        label.UpdateAttachPoint(Chart, new Point());
                    }
                }

                if (LabelArranger != null)
                {
                    LabelArranger.Arrange(Children.ToArray(), OccupiedRects, new Rect(0, 0, prect.Width, prect.Height));
                }

                foreach (var label in Children)
                {
                    var line = label.ConnectingLine;
                    var pt   = label.AttachPoint;

                    line.X1 = pt.X; line.Y1 = pt.Y;

                    var pt1 = LabelHelper.GetConnectingPoint(label);

                    if (!double.IsNaN(pt1.X) && !double.IsNaN(pt1.Y))
                    {
                        line.X2 = pt1.X; line.Y2 = pt1.Y;
                    }
                }

                _state = new ChartState(Chart);
            }
        }