プログラムがチャートに表示されるシリーズを無効にすることを可能にするチェックボックスがあります。セリエを無効にすると、chartArea と凡例から削除されます。無効にしても凡例に残すことはできますか? 凡例の透明度を変更して、無効に見えるようにし、有効にするとフルカラーに戻したいと思います。
ここに私が探しているもののリンクがあります:
プログラムがチャートに表示されるシリーズを無効にすることを可能にするチェックボックスがあります。セリエを無効にすると、chartArea と凡例から削除されます。無効にしても凡例に残すことはできますか? 凡例の透明度を変更して、無効に見えるようにし、有効にするとフルカラーに戻したいと思います。
ここに私が探しているもののリンクがあります:
編集 :
私はこれを行う別の(はるかに簡単な)方法を見つけました。あなたは単にCustomizeLegend
イベントを処理することができます(そしてを使用してシリーズを無効にするseries.Enabled
):
void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e)
{
e.LegendItems.Clear();
foreach (var series in this.chart1.Series)
{
var legendItem = new LegendItem();
legendItem.SeriesName = series.Name;
legendItem.ImageStyle = LegendImageStyle.Rectangle;
legendItem.BorderColor = Color.Transparent;
legendItem.Name = series.Name + "_legend_item";
int i = legendItem.Cells.Add(LegendCellType.SeriesSymbol, "", ContentAlignment.MiddleCenter);
legendItem.Cells.Add(LegendCellType.Text, series.Name, ContentAlignment.MiddleCenter);
if (series.Enabled)
legendItem.Color = series.Color;
else
legendItem.Color = Color.FromArgb(100, series.Color);
e.LegendItems.Add(legendItem);
}
}
結果: