问题
I'm using Radchart,i want to remove the line series which is showing value zero.Is there any possible way to hide or remove the value showing zero.Please provide any solution or code.
Thanks in Advance.
回答1:
After 2 days of struggle i have found the solution how to hide or remove the line series which contains zeros.I have four line series in that 4th line series contains zero's i which i want to hide those zero values and i have done.
before implementation
After implementation
code
//-------------------Styling------------------------
RadChart1.DefaultView.ChartLegend.Background = new SolidColorBrush(Color.FromArgb(255, 75, 119, 255));
RadChart1.DefaultView.ChartArea.AxisY.StripLinesVisibility = Visibility.Collapsed;
RadChart1.DefaultView.ChartArea.AxisY.MajorGridLinesVisibility = Visibility.Visible;
RadChart1.DefaultView.ChartLegend.UseAutoGeneratedItems = true;
RadChart1.DefaultView.ChartLegend.Header = "";
RadChart1.DefaultView.ChartLegendPosition = Telerik.Windows.Controls.Dock.Bottom;
RadChart1.DefaultView.ChartLegend.Foreground = new SolidColorBrush(Colors.White);
RadChart1.DefaultView.ChartLegend.LegendItemStyle = new Style() { TargetType = typeof(ChartLegendItem) };
RadChart1.DefaultView.ChartLegend.LegendItemStyle.Setters.Add(new Setter() { Property = Control.ForegroundProperty, Value = new SolidColorBrush(Colors.White) });
ChartLegendItem ch1 = new ChartLegendItem() { Label = "FY10", Background = new SolidColorBrush(Colors.Blue), Foreground = new SolidColorBrush(Colors.White) };
ChartLegendItem ch2 = new ChartLegendItem() { Label = "FY11", Background = new SolidColorBrush(Colors.Brown), Foreground = new SolidColorBrush(Colors.White) };
ChartLegendItem ch3 = new ChartLegendItem() { Label = "FY12", Background = new SolidColorBrush(Colors.Green), Foreground = new SolidColorBrush(Colors.White) };
ChartLegendItem ch4 = new ChartLegendItem() { Label = "FY13", Background = new SolidColorBrush(Colors.Black), Foreground = new SolidColorBrush(Colors.White) };
ChartLegendItemCollection chC = new ChartLegendItemCollection();
chC.Add(ch1);
chC.Add(ch2);
chC.Add(ch3);
chC.Add(ch4);
RadChart1.DefaultView.ChartLegend.UseAutoGeneratedItems = false;
RadChart1.DefaultView.ChartLegend.Items.Clear();
RadChart1.DefaultView.ChartLegend.Items.Add(chC[0]);
RadChart1.DefaultView.ChartLegend.Items.Add(chC[1]);
RadChart1.DefaultView.ChartLegend.Items.Add(chC[2]);
RadChart1.DefaultView.ChartLegend.Items.Add(chC[3]);
Style pathStyle1 = new Style(typeof(System.Windows.Shapes.Path));
pathStyle1.Setters.Add(new Setter(Shape.StrokeProperty, new SolidColorBrush(Colors.Blue)));
pathStyle1.Setters.Add(new Setter(Shape.StrokeThicknessProperty, 2));
Style lineStyle1 = new Style(typeof(Telerik.Windows.Controls.Charting.LineSeries));
lineStyle1.Setters.Add(new Setter(LineSeries.BorderLineStyleProperty, pathStyle1));
Style pathStyle2 = new Style(typeof(System.Windows.Shapes.Path));
// pathStyle2.Setters.Add(new Setter(Shape.StrokeDashArrayProperty, "1"));
pathStyle2.Setters.Add(new Setter(Shape.StrokeProperty, new SolidColorBrush(Colors.Brown)));
pathStyle2.Setters.Add(new Setter(Shape.StrokeThicknessProperty, 2));
Style lineStyle2 = new Style(typeof(Telerik.Windows.Controls.Charting.SelfDrawingSeries));
lineStyle2.Setters.Add(new Setter(SelfDrawingSeries.BorderLineStyleProperty, pathStyle2));
Style pathStyle3 = new Style(typeof(System.Windows.Shapes.Path));
// pathStyle3.Setters.Add(new Setter(Shape.StrokeDashArrayProperty, "1"));
pathStyle3.Setters.Add(new Setter(Shape.StrokeProperty, new SolidColorBrush(Colors.Green)));
pathStyle3.Setters.Add(new Setter(Shape.StrokeThicknessProperty, 2));
Style lineStyle3 = new Style(typeof(Telerik.Windows.Controls.Charting.SelfDrawingSeries));
lineStyle3.Setters.Add(new Setter(SelfDrawingSeries.BorderLineStyleProperty, pathStyle3));
Style pathStyle4 = new Style(typeof(System.Windows.Shapes.Path));
//pathStyle4.Setters.Add(new Setter(Shape.StrokeDashArrayProperty, "1"));
pathStyle4.Setters.Add(new Setter(Shape.StrokeProperty, new SolidColorBrush(Colors.Black)));
pathStyle4.Setters.Add(new Setter(Shape.StrokeThicknessProperty, 2));
Style lineStyle4 = new Style(typeof(Telerik.Windows.Controls.Charting.SelfDrawingSeries));
lineStyle4.Setters.Add(new Setter(SelfDrawingSeries.BorderLineStyleProperty, pathStyle4));
DataSeries line1 = new DataSeries() { Definition = new LineSeriesDefinition() { ShowItemLabels = false, ShowPointMarks = false, SeriesStyle = lineStyle1 } };
DataSeries line2 = new DataSeries() { Definition = new LineSeriesDefinition() { ShowItemLabels = false, ShowPointMarks = false, SeriesStyle = lineStyle2 } };
DataSeries line3 = new DataSeries() { Definition = new LineSeriesDefinition() { ShowItemLabels = false, ShowPointMarks = false, SeriesStyle = lineStyle3 } };
DataSeries line4 = new DataSeries() { Definition = new LineSeriesDefinition() { ShowItemLabels = false, ShowPointMarks = false, SeriesStyle = lineStyle4 } };
//-------------------------Data Binding---------------------------
List< WebService. RadChart1Data > objListAPS = new List<WebService.RadChart1Data>();
objListAPS = (List< WebService. RadChart1Data >)e.Result.ToList();
foreach (RadChart1Data obj in objListAPS)
{
line1.Add(new DataPoint(obj.Week, obj.BlueLine));
line2.Add(new DataPoint(obj.Week, obj.RedLine));
line3.Add(new DataPoint(obj.Week, obj.GreenLine));
if (obj.BlackLine != 0)
line4.Add(new DataPoint(obj.Week, obj. BlackLine));
}
RadChart1.DefaultView.ChartArea.DataSeries.Add(line1);
RadChart1.DefaultView.ChartArea.DataSeries.Add(line2);
RadChart1.DefaultView.ChartArea.DataSeries.Add(line3);
RadChart1.DefaultView.ChartArea.DataSeries.Add(line4);
RadChart1.DefaultView.ChartArea.AxisX.LayoutMode = Telerik.Windows.Controls.Charting.AxisLayoutMode.Inside;
if any found this answer is useful please mark it as correct answer it may helpful to others.
Thanks
dinesh haraveer
来源:https://stackoverflow.com/questions/14599897/how-to-hide-or-remove-zero-values-in-line-series-radchart