Я работал с OxyPlot над созданием многослойной круговой диаграммы, но мне было трудно разместить внешнюю метку рядом с линией, которая связывает ее с соответствующим фрагментом. В настоящее время верхняя левая метка с надписью «57%» находится прямо над указанной строкой.

Вот код для его создания:
частное статическое изображение GenerateEmailsBreakdownPieChart(List scanResults, PdfDocument pdfDoc, строка вывода pieChartPath, исключение произошлоEx) { Модель PlotModel = новая PlotModel { DefaultFont = "Гельветика" }; pieChartPath = string.Empty; произошлоEx = ноль; Изображение изображения = ноль; пытаться { Dictionary DetailDict = GetDetailedScanDictionary(scanResults); PieSeries externalSeries = new PieSeries { Title = "RiskLvls", StartAngle = 0, Diameter = 0,8, StrokeThickness = 2,0, InnerDiameter = 0,5, InsideLabelPosition = 0,3}; PieSeries InternalSeries = новый PieSeries { Title = «VulnerabilityTypes», StartAngle = 0, Diameter = 0,5, TickLabelDistance = 0, OutsideLabelFormat = «», TickHorizontalLength = 0, TickRadialLength = 0 }; foreach (элемент var в DetailDict) { если (item.Value.totalAmount 0) { externalSeries.Slices.Add(new PieSlice(ScanResx.LowRisk, item.Value.lowRiskAmount) { IsExploded = false, Fill = item.Value.backgroundColor }); } если (item.Value.midRiskAmount > 0) { externalSeries.Slices.Add(new PieSlice(ScanResx.MedRisk, item.Value.midRiskAmount) { IsExploded = true, Fill = item.Value.backgroundColor }); } если (item.Value.highRiskAmount > 0) { externalSeries.Slices.Add(new PieSlice(ScanResx.HighRisk, item.Value.highRiskAmount) { IsExploded = false, Fill = item.Value.backgroundColor }); } } модель.Серия.Добавить(внутренняяСерия); модель.Серия.Добавить(outerSeries); изображение = ConvertOxyPlotChartToiTextImage (модель, «chart.svg», pdfDoc, out pieChartPath); } поймать (Исключение ex) { произошлоEx = ex; } вернуть изображение; } Я хотел бы разместить метку рядом с вышеупомянутой строкой, как на изображении.