目的:给Legend添加点击事件,隐藏和显示Dataseries
尝试:使用Dataseries的Visibility属性,竟然不管用。Google了一下鸟文,使用Enable属性,能隐藏,只是隐藏后图例也一并消失了。最后在同事的提示下,使用opacity属性搞定
示例代码:
/// <summary> /// 为图例设置单击事件 /// </summary> private void SetLegendClickEventHandler() { foreach (var serie in RiverChart.Series) { Legend legend = new Legend(); legend.MouseLeftButtonDown += new EventHandler<LegendMouseButtonEventArgs>(legend_MouseLeftButtonDown); RiverChart.Legends.Add(legend); } }
/// <summary> /// 变更相应数据线的显示状态 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void legend_MouseLeftButtonDown(object sender, LegendMouseButtonEventArgs e) { DataSeries dataSerie = e.DataSeries;//获取单击的legend对应的dataserie if (dataSerie!=null) { if (dataSerie.Opacity == 1) { dataSerie.Opacity = 0;//设置为透明 } else { dataSerie.Opacity = 1; } } }