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); }