Mini Kabibi Habibi
using System;
using System.Drawing;
using DevExpress.Utils;
namespace DevExpress.XtraCharts.Demos.Modules {
public partial class ChartDemoPie : DevExpress.XtraCharts.Demos.Modules.ChartDemoBase2D {
DevExpress.XtraCharts.ChartControl chartControl;
DevExpress.XtraEditors.CheckEdit checkEditValueAsPercent;
public override ChartControl ChartControl { get { return this.chartControl; } }
protected override DefaultBoolean ToolTipEnabled { get { return DefaultBoolean.True; } }
public ChartDemoPie() {
InitializeComponent();
InitExplodeModeComboBox();
cbLabelPosition.EditValue = "Radial";
}
protected override void InitControls() {
base.InitControls();
ShowLabels = true;
foreach (Series series in chartControl.Series)
series.ToolTipPointPattern = "{A}: {V:0.0}M km" + (char)178;
}
void InitExplodeModeComboBox() {
if (ChartControl.Series.Count > 0)
cbExplodeMode.Properties.Items.AddRange(PieExplodingHelper.CreateModeList(ChartControl.Series[0].Points, true));
cbExplodeMode.SelectedIndex = 0;
}
void checkEditValueAsPercent_CheckedChanged(object sender, EventArgs e) {
if (ChartControl.Series.Count > 0) {
PiePointOptions options = chartControl.Series[0].Label.PointOptions as PiePointOptions;
if (options != null) {
options.PercentOptions.ValueAsPercent = checkEditValueAsPercent.Checked;
if (checkEditValueAsPercent.Checked)
SetNumericOptions(chartControl.Series[0], NumericFormat.Percent, 0);
else
SetNumericOptions(chartControl.Series[0], NumericFormat.FixedPoint, 1);
}
}
}
void cbLabelPosition_SelectedIndexChanged(object sender, EventArgs e) {
if (ChartControl.Series.Count == 0)
return;
PieSeriesLabel label = chartControl.Series[0].Label as PieSeriesLabel;
if (label != null) {
label.Position = (PieSeriesLabelPosition)cbLabelPosition.SelectedIndex;
label.TextColor = (label.Position == PieSeriesLabelPosition.Outside || label.Position == PieSeriesLabelPosition.TwoColumns) ? Color.Empty : Color.Black;
label.Antialiasing = label.Position == PieSeriesLabelPosition.Radial || label.Position == PieSeriesLabelPosition.Tangent;
}
}
void cbExplodeMode_SelectedIndexChanged(object sender, EventArgs e) {
if (ChartControl.Series.Count == 0)
return;
PieSeriesView view = chartControl.Series[0].View as PieSeriesView;
if (view != null) {
string mode = (string)cbExplodeMode.SelectedItem;
PieExplodingHelper.ApplyMode(view, mode);
}
}
void chartControl_PieSeriesPointExploded(object sender, PieSeriesPointExplodedEventArgs e) {
if (e.Dragged)
cbExplodeMode.SelectedItem = PieExplodingHelper.Custom;
}
public override void UpdateControls() {
base.UpdateControls();
if (ChartControl.Series.Count == 0)
return;
PieSeriesLabel label = this.chartControl.Series[0].Label as PieSeriesLabel;
if (label != null) {
cbLabelPosition.SelectedIndex = (int)label.Position;
if (chartControl.Series[0].Label.PointOptions is PiePointOptions)
checkEditValueAsPercent.Checked = ((PiePointOptions)chartControl.Series[0].Label.PointOptions).PercentOptions.ValueAsPercent;
this.cbLabelPosition.Enabled = ShowLabels;
this.labelPosition.Enabled = ShowLabels;
}
}
}
}