簡體   English   中英

WPF餅圖如何在切片之間添加空間?

[英]WPF Pie Chart how to add space between slices?

我在WPF中使用Telerik(RadPieChart)。 如何在切片之間增加空間?

這是我目前擁有的: 在此處輸入圖片說明

這就是我希望餅圖在切片之間具有空格的樣子: 在此處輸入圖片說明

這是我的源代碼:

private DoughnutSeries CreateDognutSerie(KeyValuePair<ChartSerie, List<ChartDataPoint>> chartSerie, int index, int count)
    {
        double spaceBetweenSperies = 0.0;
        if (count > 1 && index != count - 1)
        {
            spaceBetweenSperies = 0.007;
        }

        var doughnutSerie = new DoughnutSeries()
        {
            ShowLabels = true,
            //LabelConnectorsSettings = new ChartSeriesLabelConnectorsSettings()
            //{

            //},
            InnerRadiusFactor = index / (double)count,
            RadiusFactor      = ((index + 1) / (double)count) - spaceBetweenSperies,
            //LegendSettings = new DataPointLegendSettings()
            //{

            //},
            //SeriesAnimation = new PieChartAngleRangeAnimation()
            //{
            //    InitialStartAngle = -90,
            //    InitialSweepAngle = 180,
            //    Duration          = new TimeSpan(0, 0, 0, 0, 800),
            //}
        };
        foreach (ChartDataPoint serie in chartSerie.Value)
        {
            doughnutSerie.DataPoints.Add(new PieDataPoint()
            {
                Label = serie.XPoint.Label,
                Value = Math.Abs((double?)serie.Value ?? 0),
            });
        }

        return doughnutSerie;
    }

使用OffsetFromCenter財產PieDataPoint OffsetFromCenter = 0.015這樣的東西應該類似於上圖。

public MainWindow()
{
    InitializeComponent();

    var data = new Dictionary<string, double>
    {
        { "January", 5 },
        { "February", 3 },
        { "March", 5 },
        { "April", 7 },
        { "May", 2 },
        { "June", 11 },
        { "July", 11 },
        { "August", 11 },
        { "September", 11 },
        { "October", 11 },
        { "November", 11 },
        { "December", 12 },
    };

    var series = CreateDougnutSeries(data);
    var pie = new RadPieChart { Palette = ChartPalettes.Fluent };
    pie.Series.Add(series);

    mainGrid.Children.Add(pie);

}

private DoughnutSeries CreateDougnutSeries(Dictionary<string, double> data)
{
    var doughnutSeries = new DoughnutSeries
    {
        ShowLabels = true,
        InnerRadiusFactor = 0,
        RadiusFactor = 1
    };

    foreach (var point in data)
    {
        doughnutSeries.DataPoints.Add(new PieDataPoint()
        {
            Label = point.Key,
            Value = point.Value,
            OffsetFromCenter = 0.015
        });
    }

    return doughnutSeries;
}

餅形圖

OffsetFromCenter增加到0.1將使線條更粗:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM