簡體   English   中英

如何更改圖表圖例的屬性

[英]How to change properties of chart legend

我在調整VS2017中C#圖表圖例的布局方面遇到了困難。 當我去Properties Legends ,我可以更改幾個屬性,但是我找不到如何更改圖例邊框與其項目之間的邊距(實際上是填充 )。 另一個我無法改變的屬性:圖例項之間的間距 我找到了一些關於“樣式文件”的討論,但我想避免這種情況。 我也搜索了不同的參考資料,可以給我更多的選擇,但我沒有找到任何東西。

那么,有沒有辦法更改圖例的屬性,而不是Properties中顯示的Properties 我希望找到類似的東西:“myLegend.padding = 10pt”。

您可以使用圖表的CustomizeLegend事件來設置Legend ,其LegendItems及其LegendCells

您正在尋找的保證金LegendCell的財產

邊距對象,表示圖例單元格邊距的頂部,底部,左側和右側值。 頂部,底部,左側和右側的默認值為“0,0,15,15”。

邊距以圖例單元格的字體大小百分比來度量

這意味着對於一個普通的LegendItem ,它包含兩個 Cells ,一個用於系列標記 ,另一個用於文本 ,你需要設置兩個邊距。

這是一個例子; 它創建了30%的上邊距,沒有底邊距,也為第1個,左標記單元格為400%(左)邊距,第2(右)文本單元格為200%右邊距。 單元格之間的填充添加到文本單元格中,為100%..:

private void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e)
{
    foreach (LegendItem lit in e.LegendItems)
    {
        var cells = lit.Cells;
        cells[0].Margins = new Margins(30, 0, 400, 100);
        cells[1].Margins = new Margins(30, 0, 0, 200);
    }
}

讓我們看看它在行動; 我在單元格中添加了兩種顏色,因此您可以更好地查看各個區域:

在此輸入圖像描述

這是更新的動態代碼:

cells[0].Margins = new Margins(tr_top.Value, tr_bot.Value, tr_ll.Value, tr_mm.Value);
cells[1].Margins = new Margins(tr_top.Value, tr_bot.Value, tr_mm.Value, tr_rr.Value);

暫無
暫無

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

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