Inheritance: System.Windows.Controls.UserControl
Example #1
0
        private void RefreshUI()
        {
            foreach (PieSlice sliceControl in xSlices.Children.OfType<PieSlice>())
            {
                sliceControl.MouseMove -= OnSliceMouseMove;
            }

            xSlices.Children.Clear();

            double numFractions = _sliceWeights.Length;
            double acc = 0.0;

            for (int i = 0; i < _sliceWeights.Length; ++i)
            {
                double sliceWeight = _sliceWeights[i];
                Color sliceColor = _colorSpace[i];

                PieSlice sliceControl = new PieSlice();
                sliceControl.StartDegree = acc;
                sliceControl.EndDegree = Math.Min(acc + sliceWeight * 360.0, 359.9);
                sliceControl.Color = sliceColor;
                sliceControl.MouseMove += OnSliceMouseMove;
                sliceControl.MouseDown += OnSliceMouseDown;
                sliceControl.MouseLeave += OnSliceMouseLeave;
                sliceControl.MouseUp += OnSliceMouseUp;

                xSlices.Children.Add(sliceControl);

                acc = sliceControl.EndDegree;
            }

            foreach (PieSlice slice in this.xSlices.Children)
            {
                if (_enableArrows && slice.ChildContent == null)
                {
                    Arrow arrow = new Arrow();
                    arrow.Width = 5;
                    arrow.Height = 5;
                    arrow.RenderTransform = new RotateTransform(180);
                    arrow.RenderTransformOrigin = new Point(0.5, 0.5);
                    arrow.HorizontalAlignment = HorizontalAlignment.Center;
                    arrow.VerticalAlignment = VerticalAlignment.Center;
                    arrow.Margin = new Thickness(0, -2, 0, 0);
                    arrow.IsHitTestVisible = false;
                    slice.ChildContent = arrow;
                }
                else if (!_enableArrows && slice.ChildContent != null)
                {
                    slice.ChildContent = null;
                }
            }
        }