[英]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.