Ejemplo n.º 1
0
        protected override void OnRender(DrawingContext drawingContext)
        {
            _segments.Children.Clear();

            var angle = FilteredData.Map(0, 100, 0, 360);

            var radius       = (_segments.RenderSize.Smallest() * CircleScale) / 2;
            var segmentWidth = radius * SegmentWidthPercentage;
            var inactivePath = new ArcPath(359.999, 0, segmentWidth, CircleScale, radius, _segments.RenderSize, null)
            {
                DataContext = this
            };
            var activePath = new ArcPath(angle, AngleOffset, segmentWidth, CircleScale, radius, _segments.RenderSize, FilteredData)
            {
                DataContext = this
            };

            inactivePath.Fill = SegmentSpaceBackground.GetMaterial(FallbackMaterialSet);
            activePath.Fill   = RingForeground.GetMaterial(FallbackMaterialSet);
            //inactivePath.SetBinding(Shape.FillProperty, new Binding("SegmentSpaceBackground"));
            //activePath.SetBinding(Shape.FillProperty, new Binding("RingForeground"));

            _segments.Children.Add(inactivePath);
            _segments.Children.Add(activePath);

            base.OnRender(drawingContext);
        }