public override void Initialize() { nChartControl1.Panels.Clear(); // set a chart title NLabel header = new NLabel("Gauge Tooltips"); header.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, FontStyle.Italic); header.ContentAlignment = ContentAlignment.BottomRight; header.Location = new NPointL(new NLength(2, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); nChartControl1.Panels.Add(header); // create the radial gauge NRadialGaugePanel radialGauge = new NRadialGaugePanel(); radialGauge.Location = new NPointL(new NLength(10, NRelativeUnit.ParentPercentage), new NLength(15, NRelativeUnit.ParentPercentage)); radialGauge.Size = new NSizeL(new NLength(80, NRelativeUnit.ParentPercentage), new NLength(80, NRelativeUnit.ParentPercentage)); radialGauge.PaintEffect = new NGlassEffectStyle(); radialGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.Auto); radialGauge.BackgroundFillStyle = new NAdvancedGradientFillStyle(AdvancedGradientScheme.WhiteOnBlack, 0); // configure scale NLinearScaleConfigurator scale = ((NGaugeAxis)radialGauge.Axes[0]).ScaleConfigurator as NLinearScaleConfigurator; scale.SetPredefinedScaleStyle(PredefinedScaleStyle.PresentationNoStroke); scale.LabelFitModes = new LabelFitMode[0]; scale.MinorTickCount = 3; scale.RulerStyle.FillStyle = new NColorFillStyle(Color.FromArgb(40, Color.White)); scale.OuterMajorTickStyle.FillStyle = new NColorFillStyle(Color.Orange); scale.LabelStyle.TextStyle.FontStyle = new NFontStyle("Arial", 12, FontStyle.Bold | FontStyle.Italic); scale.LabelStyle.TextStyle.FillStyle = new NColorFillStyle(Color.White); m_Axis = (NGaugeAxis)radialGauge.Axes[0]; nChartControl1.Panels.Add(radialGauge); m_Indicator1 = new NRangeIndicator(); m_Indicator1.Value = 50; m_Indicator1.FillStyle = new NColorFillStyle(Color.LightBlue); m_Indicator1.StrokeStyle.Color = Color.DarkBlue; m_Indicator1.EndWidth = new NLength(20); radialGauge.Indicators.Add(m_Indicator1); m_Indicator2 = new NNeedleValueIndicator(); m_Indicator2.Value = 79; m_Indicator2.Shape.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.White, Color.Red); m_Indicator2.Shape.StrokeStyle.Color = Color.Red; radialGauge.Indicators.Add(m_Indicator2); radialGauge.SweepAngle = 270; m_Indicator3 = new NMarkerValueIndicator(); m_Indicator3.Value = 90; radialGauge.Indicators.Add(m_Indicator3); nChartControl1.Controller.Tools.Add(new NTooltipTool()); // init form controls UpdateTooltips(); }
private void ChartControl_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { NHitTestResult hitTestResult = nChartControl1.HitTest(e.X, e.Y); switch (hitTestResult.ChartElement) { case ChartElement.GaugeAxis: NGaugeAxis gaugeAxis = hitTestResult.GaugeAxis; CurrentElementTextBox.Text = "Gauge Axis Range: [" + gaugeAxis.Range.Begin.ToString() + ", " + gaugeAxis.Range.End.ToString() + "]"; break; case ChartElement.GaugeMarker: NMarkerValueIndicator markerValueIndicator = hitTestResult.MarkerValueIndicator; CurrentElementTextBox.Text = "Gauge Marker Value: " + markerValueIndicator.Value.ToString(); break; case ChartElement.GaugeNeedle: NNeedleValueIndicator needleIndicator = hitTestResult.NeedleValueIndicator; CurrentElementTextBox.Text = "Gauge Needle Value: " + needleIndicator.Value.ToString(); break; case ChartElement.GaugeRange: NRangeIndicator rangeIndicator = hitTestResult.RangeIndicator; CurrentElementTextBox.Text = "Gauge range: [" + rangeIndicator.Range.Begin.ToString() + ", " + rangeIndicator.Range.End.ToString() + "]"; break; default: CurrentElementTextBox.Text = ""; break; } }
void nChartControl1_PreviewMouseMove(object sender, MouseEventArgs e) { System.Windows.Point p = e.GetPosition(nChartControl1); NHitTestResult hitTestResult = (NHitTestResult)nChartControl1.HitTest((int)p.X, (int)p.Y); switch (hitTestResult.ChartElement) { case ChartElement.GaugeAxis: NGaugeAxis gaugeAxis = hitTestResult.GaugeAxis; CurrentElementTextBox.Text = "Gauge Axis Range: [" + gaugeAxis.Range.Begin.ToString() + ", " + gaugeAxis.Range.End.ToString() + "]"; break; case ChartElement.GaugeMarker: NMarkerValueIndicator markerValueIndicator = hitTestResult.MarkerValueIndicator; CurrentElementTextBox.Text = "Gauge Marker Value: " + markerValueIndicator.Value.ToString(); break; case ChartElement.GaugeNeedle: NNeedleValueIndicator needleIndicator = hitTestResult.NeedleValueIndicator; CurrentElementTextBox.Text = "Gauge Needle Value: " + needleIndicator.Value.ToString(); break; case ChartElement.GaugeRange: NRangeIndicator rangeIndicator = hitTestResult.RangeIndicator; CurrentElementTextBox.Text = "Gauge range: [" + rangeIndicator.Range.Begin.ToString() + ", " + rangeIndicator.Range.End.ToString() + "]"; break; default: CurrentElementTextBox.Text = ""; break; } }
private NLinearGaugePanel CreateVerticalLinearGauge() { NLinearGaugePanel linearGauge = new NLinearGaugePanel(); linearGauge.Orientation = LinearGaugeOrientation.Vertical; linearGauge.Location = new NPointL(new NLength(10, NRelativeUnit.ParentPercentage), new NLength(40, NRelativeUnit.ParentPercentage)); linearGauge.Size = new NSizeL(new NLength(60, NGraphicsUnit.Point), new NLength(50, NRelativeUnit.ParentPercentage)); linearGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.RoundedRect); linearGauge.BackgroundFillStyle = new NGradientFillStyle(Color.DarkGray, Color.Black); // add indicators m_VertLinearIndicator1 = new NRangeIndicator(); m_VertLinearIndicator1.Value = 10; m_VertLinearIndicator1.FillStyle = new NGradientFillStyle(Color.LightBlue, Color.DarkBlue); m_VertLinearIndicator1.StrokeStyle.Color = Color.DarkBlue; linearGauge.Indicators.Add(m_VertLinearIndicator1); m_VertLinearIndicator2 = new NMarkerValueIndicator(); m_VertLinearIndicator2.Value = 50; linearGauge.Indicators.Add(m_VertLinearIndicator2); NGaugeAxis axis = (NGaugeAxis)linearGauge.Axes[0]; axis.Anchor = new NModelGaugeAxisAnchor(); ConfigureAxis(axis); return(linearGauge); }
/// <summary> /// /// </summary> /// <returns></returns> protected override NWidget CreateExampleContent() { NStackPanel stack = new NStackPanel(); NStackPanel controlStack = new NStackPanel(); controlStack.Direction = ENHVDirection.LeftToRight; stack.Add(controlStack); m_LinearGauge = new NLinearGauge(); m_LinearGauge.Orientation = ENLinearGaugeOrientation.Vertical; m_LinearGauge.PreferredSize = defaultLinearVerticalGaugeSize; m_LinearGauge.BackgroundFill = new NStockGradientFill(NColor.DarkGray, NColor.Black); m_LinearGauge.CapEffect = new NGelCapEffect(); m_LinearGauge.Border = base.CreateBorder(); m_LinearGauge.Padding = new NMargins(20); m_LinearGauge.BorderThickness = new NMargins(6); controlStack.Add(m_LinearGauge); NMarkerValueIndicator markerIndicator = new NMarkerValueIndicator(); m_LinearGauge.Indicators.Add(markerIndicator); InitSections(m_LinearGauge); // create the radial gauge m_RadialGauge = new NRadialGauge(); m_RadialGauge.PreferredSize = defaultRadialGaugeSize; NEdgeDialRim dialRim = new NEdgeDialRim(); dialRim.OuterBevelWidth = 2.0; dialRim.InnerBevelWidth = 2.0; dialRim.MiddleBevelWidth = 2.0; m_RadialGauge.Dial = new NDial(ENDialShape.CutCircle, dialRim); m_RadialGauge.Dial.BackgroundFill = new NStockGradientFill(NColor.DarkGray, NColor.Black); m_RadialGauge.InnerRadius = 15; NGlassCapEffect glassCapEffect = new NGlassCapEffect(); glassCapEffect.LightDirection = new NAngle(130, NUnit.Degree); glassCapEffect.EdgeOffset = 0; glassCapEffect.EdgeDepth = 0.30; m_RadialGauge.CapEffect = glassCapEffect; controlStack.Add(m_RadialGauge); NNeedleValueIndicator needleIndicator = new NNeedleValueIndicator(); m_RadialGauge.Indicators.Add(needleIndicator); m_RadialGauge.SweepAngle = new NAngle(180, NUnit.Degree); InitSections(m_RadialGauge); m_DataFeedTimer = new NTimer(); m_DataFeedTimer.Tick += new Function(OnDataFeedTimerTick); m_DataFeedTimer.Start(); return(stack); }
protected override NWidget CreateExampleContent() { NStackPanel stack = new NStackPanel(); NStackPanel controlStack = new NStackPanel(); stack.Add(controlStack); NRadialGauge radialGauge = new NRadialGauge(); radialGauge.PreferredSize = defaultRadialGaugeSize; radialGauge.CapEffect = new NGlassCapEffect(); radialGauge.Dial = new NDial(ENDialShape.Circle, new NEdgeDialRim()); radialGauge.Dial.BackgroundFill = NAdvancedGradientFill.Create(ENAdvancedGradientColorScheme.Ocean2, 0); // configure scale NGaugeAxis axis = new NGaugeAxis(); radialGauge.Axes.Add(axis); NLinearScale scale = axis.Scale as NLinearScale; scale.SetPredefinedScale(ENPredefinedScaleStyle.PresentationNoStroke); scale.Labels.OverlapResolveLayouts = new NDomArray <ENLevelLabelsLayout>(); scale.MinorTickCount = 3; scale.Ruler.Fill = new NColorFill(NColor.FromColor(NColor.White, 0.4f)); scale.OuterMajorTicks.Fill = new NColorFill(NColor.Orange); scale.Labels.Style.TextStyle.Font = new NFont("Arimo", 12.0, ENFontStyle.Bold | ENFontStyle.Italic); scale.Labels.Style.TextStyle.Fill = new NColorFill(NColor.White); m_Axis = (NGaugeAxis)radialGauge.Axes[0]; controlStack.Add(radialGauge); m_Indicator1 = new NRangeIndicator(); m_Indicator1.Value = 50; m_Indicator1.Fill = new NColorFill(NColor.LightBlue); m_Indicator1.Stroke.Color = NColor.DarkBlue; m_Indicator1.EndWidth = 20; m_Indicator1.AllowDragging = true; radialGauge.Indicators.Add(m_Indicator1); m_Indicator2 = new NNeedleValueIndicator(); m_Indicator2.Value = 79; m_Indicator2.Fill = new NStockGradientFill(ENGradientStyle.Horizontal, ENGradientVariant.Variant1, NColor.White, NColor.Red); m_Indicator2.Stroke.Color = NColor.Red; m_Indicator2.AllowDragging = true; radialGauge.Indicators.Add(m_Indicator2); m_Indicator3 = new NMarkerValueIndicator(); m_Indicator3.Value = 90; m_Indicator3.AllowDragging = true; radialGauge.Indicators.Add(m_Indicator3); radialGauge.SweepAngle = new NAngle(270.0, NUnit.Degree); return(stack); }
private void CreateSpeedGauge() { // create the radial gauge NRadialGaugePanel radialGauge = new NRadialGaugePanel(); radialGauge.BackgroundFillStyle = CreateAdvancedGradient(); radialGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.Auto); radialGauge.PaintEffect = new NGlassEffectStyle(); radialGauge.ContentAlignment = ContentAlignment.BottomRight; radialGauge.Location = new NPointL(new NLength(5, NRelativeUnit.ParentPercentage), new NLength(15, NRelativeUnit.ParentPercentage)); radialGauge.Size = new NSizeL(new NLength(45, NRelativeUnit.ParentPercentage), new NLength(80, NRelativeUnit.ParentPercentage)); NLabel label = new NLabel("km/h"); label.ContentAlignment = ContentAlignment.BottomCenter; label.TextStyle.FontStyle = new NFontStyle("Times New Roman", 20, FontStyle.Italic); label.TextStyle.FontStyle.Style = FontStyle.Italic; label.TextStyle.FillStyle = new NColorFillStyle(Color.White); label.TextStyle.ShadowStyle.Type = ShadowType.LinearBlur; label.BoundsMode = BoundsMode.Fit; label.UseAutomaticSize = false; label.Size = new NSizeL( new NLength(60, NRelativeUnit.ParentPercentage), new NLength(7, NRelativeUnit.ParentPercentage)); label.Location = new NPointL( new NLength(50, NRelativeUnit.ParentPercentage), new NLength(55, NRelativeUnit.ParentPercentage)); label.Cache = true; radialGauge.ChildPanels.Add(label); nChartControl1.Panels.Add(radialGauge); NGaugeAxis axis = (NGaugeAxis)radialGauge.Axes[0]; axis.Range = new NRange1DD(0, 250); NStandardScaleConfigurator scale = (NStandardScaleConfigurator)axis.ScaleConfigurator; ConfigureScale(scale, new NRange1DD(220, 260)); radialGauge.Indicators.Add(CreateRangeIndicator(220)); NMarkerValueIndicator indicator3 = new NMarkerValueIndicator(); indicator3.Value = 90; radialGauge.Indicators.Add(indicator3); m_SpeedIndicator = new NNeedleValueIndicator(); m_SpeedIndicator.Value = 0; m_SpeedIndicator.Shape.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.White, Color.Red); m_SpeedIndicator.Shape.StrokeStyle.Color = Color.Red; radialGauge.Indicators.Add(m_SpeedIndicator); radialGauge.BeginAngle = -240; radialGauge.SweepAngle = 300; }
private void InitLinearGauge() { NLinearGaugePanel linearGauge = new NLinearGaugePanel(); linearGauge.ContentAlignment = ContentAlignment.TopRight; linearGauge.Location = new NPointL(new NLength(10, NRelativeUnit.ParentPercentage), new NLength(40, NRelativeUnit.ParentPercentage)); linearGauge.Size = new NSizeL(new NLength(80, NRelativeUnit.ParentPercentage), new NLength(55, NGraphicsUnit.Point)); linearGauge.BackgroundFillStyle = new NGradientFillStyle(Color.DarkGray, Color.Black); linearGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.RoundedRect); linearGauge.PaintEffect = new NGelEffectStyle(); nChartControl1.Panels.Add(linearGauge); NMarkerValueIndicator indicator1 = new NMarkerValueIndicator(); linearGauge.Indicators.Add(indicator1); InitSections(linearGauge); }
private NRadialGaugePanel CreateRadialGauge() { // create the radial gauge NRadialGaugePanel radialGauge = new NRadialGaugePanel(); radialGauge.Location = new NPointL(new NLength(32, NRelativeUnit.ParentPercentage), new NLength(40, NRelativeUnit.ParentPercentage)); radialGauge.Size = new NSizeL(new NLength(58, NRelativeUnit.ParentPercentage), new NLength(50, NRelativeUnit.ParentPercentage)); radialGauge.BackgroundFillStyle = new NGradientFillStyle(Color.DarkGray, Color.Black); radialGauge.PaintEffect = new NGlassEffectStyle(); radialGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.Auto); // configure the axis NGaugeAxis axis = (NGaugeAxis)radialGauge.Axes[0]; ConfigureAxis(axis); // add some indicators m_RadialIndicator1 = new NRangeIndicator(); m_RadialIndicator1.Value = 50; m_RadialIndicator1.FillStyle = new NGradientFillStyle(Color.LightBlue, Color.DarkBlue); m_RadialIndicator1.StrokeStyle.Color = Color.DarkBlue; m_RadialIndicator1.EndWidth = new NLength(20); radialGauge.Indicators.Add(m_RadialIndicator1); m_RadialIndicator2 = new NNeedleValueIndicator(); m_RadialIndicator2.Value = 79; m_RadialIndicator2.Shape.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.White, Color.Red); m_RadialIndicator2.Shape.StrokeStyle.Color = Color.Red; radialGauge.Indicators.Add(m_RadialIndicator2); radialGauge.SweepAngle = 270; m_RadialIndicator3 = new NMarkerValueIndicator(); m_RadialIndicator3.Value = 90; radialGauge.Indicators.Add(m_RadialIndicator3); return(radialGauge); }
public override void Create() { nChartControl1.Panels.Clear(); // set a chart title NLabel header = new NLabel("Linear Gauge Indicators"); header.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, System.Drawing.FontStyle.Italic); header.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; header.Location = new NPointL(new NLength(2, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); nChartControl1.Panels.Add(header); // create a linear gauge m_LinearGauge = new NLinearGaugePanel(); nChartControl1.Panels.Add(m_LinearGauge); m_LinearGauge.ContentAlignment = System.Drawing.ContentAlignment.MiddleCenter; m_LinearGauge.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(50, NRelativeUnit.ParentPercentage)); m_LinearGauge.PaintEffect = new NGelEffectStyle(); m_LinearGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.RoundedRect); m_LinearGauge.BackgroundFillStyle = new NGradientFillStyle(System.Drawing.Color.Gray, System.Drawing.Color.Black); m_LinearGauge.Axes.Clear(); NRange1DD celsiusRange = new NRange1DD(-40, 60); // add celsius and farenheit axes NGaugeAxis celsiusAxis = new NGaugeAxis(); celsiusAxis.Range = celsiusRange; celsiusAxis.Anchor = new NModelGaugeAxisAnchor(new NLength(-5), VertAlign.Center, RulerOrientation.Left, 0, 100); m_LinearGauge.Axes.Add(celsiusAxis); NGaugeAxis farenheitAxis = new NGaugeAxis(); farenheitAxis.Range = new NRange1DD(CelsiusToFarenheit(celsiusRange.Begin), CelsiusToFarenheit(celsiusRange.End)); farenheitAxis.Anchor = new NModelGaugeAxisAnchor(new NLength(5), VertAlign.Center, RulerOrientation.Right, 0, 100); m_LinearGauge.Axes.Add(farenheitAxis); // configure the scales NLinearScaleConfigurator celsiusScale = (NLinearScaleConfigurator)celsiusAxis.ScaleConfigurator; ConfigureScale(celsiusScale, "°C"); celsiusScale.Sections.Add(CreateSection(System.Drawing.Color.Red, System.Drawing.Color.Red, new NRange1DD(40, 60))); celsiusScale.Sections.Add(CreateSection(System.Drawing.Color.Blue, System.Drawing.Color.SkyBlue, new NRange1DD(-40, -20))); NLinearScaleConfigurator farenheitScale = (NLinearScaleConfigurator)farenheitAxis.ScaleConfigurator; ConfigureScale(farenheitScale, "°F"); farenheitScale.Sections.Add(CreateSection(System.Drawing.Color.Red, System.Drawing.Color.Red, new NRange1DD(CelsiusToFarenheit(40), CelsiusToFarenheit(60)))); farenheitScale.Sections.Add(CreateSection(System.Drawing.Color.Blue, System.Drawing.Color.SkyBlue, new NRange1DD(CelsiusToFarenheit(-40), CelsiusToFarenheit(-20)))); // now add two indicators m_Indicator1 = new NRangeIndicator(); m_Indicator1.Value = 10; m_Indicator1.StrokeStyle.Color = System.Drawing.Color.DarkBlue; m_Indicator1.FillStyle = new NGradientFillStyle(GradientStyle.Vertical, GradientVariant.Variant1, System.Drawing.Color.LightBlue, System.Drawing.Color.Blue); m_LinearGauge.Indicators.Add(m_Indicator1); m_Indicator2 = new NMarkerValueIndicator(); m_Indicator2.Value = 33; m_Indicator2.Shape.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, System.Drawing.Color.White, System.Drawing.Color.Red); m_Indicator2.Shape.StrokeStyle.Color = System.Drawing.Color.DarkRed; m_LinearGauge.Indicators.Add(m_Indicator2); // init form controls NExampleHelpers.BindComboToItemSource(ValueIndicatorComboBox, -20, 60, 1); ValueIndicatorComboBox.SelectedItem = (int)m_Indicator2.Value; NExampleHelpers.BindComboToItemSource(RangeIndicatorValueComboBox, -20, 60, 1); RangeIndicatorValueComboBox.SelectedItem = (int)m_Indicator1.Value; NExampleHelpers.BindComboToItemSource(MarkerWidthComboBox, 1, 40, 1); MarkerWidthComboBox.SelectedItem = (int)m_Indicator2.Width.Value; NExampleHelpers.BindComboToItemSource(MarkerHeightComboBox, 1, 40, 1); MarkerHeightComboBox.SelectedItem = (int)m_Indicator2.Height.Value; NExampleHelpers.FillComboWithEnumValues(RangeIndicatorOriginModeComboBox, typeof(OriginMode)); RangeIndicatorOriginModeComboBox.SelectedIndex = 0; NExampleHelpers.BindComboToItemSource(RangeIndicatorOriginComboBox, -20, 60, 1); RangeIndicatorOriginComboBox.SelectedItem = (int)m_Indicator1.Origin; NExampleHelpers.FillComboWithEnumValues(ValueIndicatorShapeComboBox, typeof(SmartShape2D)); ValueIndicatorShapeComboBox.SelectedIndex = (int)SmartShape2D.Triangle; NExampleHelpers.FillComboWithEnumValues(GaugeOrientationCombo, typeof(LinearGaugeOrientation)); GaugeOrientationCombo.SelectedIndex = 0; }
public override void Create() { nChartControl1.Panels.Clear(); // set a chart title NLabel header = new NLabel("Gauge Hit Testing"); header.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, System.Drawing.FontStyle.Italic); header.ContentAlignment = ContentAlignment.BottomRight; header.Location = new NPointL(new NLength(2, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); nChartControl1.Panels.Add(header); // create the radial gauge NRadialGaugePanel radialGauge = new NRadialGaugePanel(); radialGauge.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(50, NRelativeUnit.ParentPercentage)); radialGauge.Size = new NSizeL(new NLength(100, NRelativeUnit.ParentPercentage), new NLength(100, NRelativeUnit.ParentPercentage)); radialGauge.PaintEffect = new NGlassEffectStyle(); radialGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.Auto); radialGauge.BackgroundFillStyle = new NAdvancedGradientFillStyle(AdvancedGradientScheme.WhiteOnBlack, 0); radialGauge.Location = new NPointL(new NLength(10, NRelativeUnit.ParentPercentage), new NLength(15, NRelativeUnit.ParentPercentage)); radialGauge.Size = new NSizeL(new NLength(80, NRelativeUnit.ParentPercentage), new NLength(80, NRelativeUnit.ParentPercentage)); radialGauge.PositionChildPanelsInContentBounds = true; // configure scale NLinearScaleConfigurator scale = ((NGaugeAxis)radialGauge.Axes[0]).ScaleConfigurator as NLinearScaleConfigurator; scale.SetPredefinedScaleStyle(PredefinedScaleStyle.PresentationNoStroke); scale.LabelFitModes = new LabelFitMode[0]; scale.MinorTickCount = 3; scale.RulerStyle.FillStyle = new NColorFillStyle(Color.FromArgb(40, Color.White)); scale.OuterMajorTickStyle.FillStyle = new NColorFillStyle(Color.Orange); scale.LabelStyle.TextStyle.FontStyle = new NFontStyle("Arial", 12, System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic); scale.LabelStyle.TextStyle.FillStyle = new NColorFillStyle(Color.White); nChartControl1.Panels.Add(radialGauge); NRangeIndicator indicator1 = new NRangeIndicator(); indicator1.Value = 50; indicator1.FillStyle = new NColorFillStyle(Color.LightBlue); indicator1.StrokeStyle.Color = Color.DarkBlue; indicator1.EndWidth = new NLength(20); radialGauge.Indicators.Add(indicator1); NNeedleValueIndicator indicator2 = new NNeedleValueIndicator(); indicator2.Value = 79; indicator2.Shape.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.White, Color.Red); indicator2.Shape.StrokeStyle.Color = Color.Red; radialGauge.Indicators.Add(indicator2); radialGauge.SweepAngle = 270; NMarkerValueIndicator indicator3 = new NMarkerValueIndicator(); indicator3.Value = 90; radialGauge.Indicators.Add(indicator3); // subscribe for control events nChartControl1.PreviewMouseMove += new MouseEventHandler(nChartControl1_PreviewMouseMove); nChartControl1.Settings.RenderSurface = RenderSurface.Bitmap; nChartControl1.Controller.Tools.Clear(); }
/// <summary> /// /// </summary> /// <returns></returns> protected override NWidget CreateExampleContent() { NStackPanel stack = new NStackPanel(); NStackPanel controlStack = new NStackPanel(); controlStack.Padding = new NMargins(20); stack.Add(controlStack); m_LinearGauge = new NLinearGauge(); m_LinearGauge.Padding = new NMargins(30); m_LinearGauge.PreferredSize = defaultLinearHorizontalGaugeSize; controlStack.Add(m_LinearGauge); NGaugeAxis axis = new NGaugeAxis(); m_LinearGauge.Axes.Add(axis); axis.Anchor = new NDockGaugeAxisAnchor(ENGaugeAxisDockZone.Top, true, ENScaleOrientation.Left, 0, 100); axis = new NGaugeAxis(); m_LinearGauge.Axes.Add(axis); axis.Anchor = new NDockGaugeAxisAnchor(ENGaugeAxisDockZone.Top, true, ENScaleOrientation.Left, 0, 50); // create the radial gauge m_RadialGauge = new NRadialGauge(); m_RadialGauge.PreferredSize = defaultRadialGaugeSize; m_RadialGauge.NeedleCap.Visible = false; controlStack.Add(m_RadialGauge); // create the radial gauge m_RadialGauge.SweepAngle = new NAngle(270, NUnit.Degree); m_RadialGauge.BeginAngle = new NAngle(-90, NUnit.Degree); m_RadialGauge.PreferredHeight = 400; // configure the axis axis = new NGaugeAxis(); m_RadialGauge.Axes.Add(axis); axis.Range = new NRange(0, 100); axis.Anchor = new NDockGaugeAxisAnchor(ENGaugeAxisDockZone.Top, true, ENScaleOrientation.Left, 0.0f, 100.0f); // configure the axis axis = new NGaugeAxis(); m_RadialGauge.Axes.Add(axis); axis.Range = new NRange(0, 100); axis.Anchor = new NDockGaugeAxisAnchor(ENGaugeAxisDockZone.Top, true, ENScaleOrientation.Left, 0.0f, 50.0f); NNeedleValueIndicator indicator = new NNeedleValueIndicator(); indicator.ScaleAxis = axis; indicator.OffsetFromScale = 20; m_RadialGauge.Indicators.Add(indicator); NMarkerValueIndicator markerValueIndicator = new NMarkerValueIndicator(10); markerValueIndicator.Shape = ENScaleValueMarkerShape.Bar; m_RadialGauge.Indicators.Add(new NMarkerValueIndicator(10)); m_RadialGauge.Indicators.Add(new NMarkerValueIndicator(90)); NNeedleValueIndicator needle = new NNeedleValueIndicator(); needle.Value = 10; needle.Shape = ENNeedleShape.Needle4; needle.Fill = new NColorFill(NColor.DarkGreen); needle.Stroke = new NStroke(NColor.DarkGreen); // radialGauge.Indicators.Add(needle); markerValueIndicator.Width = 20; markerValueIndicator.Height = 20; markerValueIndicator.Fill = new NColorFill(NColor.DarkGreen); markerValueIndicator.Stroke = new NStroke(1.0, NColor.DarkGreen); return(stack); }
protected override NWidget CreateExampleContent() { NStackPanel stack = new NStackPanel(); NStackPanel controlStack = new NStackPanel(); stack.Add(controlStack); // create the radial gauge NRadialGauge radialGauge = new NRadialGauge(); controlStack.Add(radialGauge); radialGauge.Dial = new NDial(ENDialShape.Circle, new NEdgeDialRim()); radialGauge.PreferredSize = defaultRadialGaugeSize; radialGauge.Dial.BackgroundFill = new NStockGradientFill(NColor.DarkGray, NColor.Black); radialGauge.CapEffect = new NGlassCapEffect(); // configure the axis NGaugeAxis axis = new NGaugeAxis(); radialGauge.Axes.Add(axis); NStandardScale scale = (NStandardScale)axis.Scale; scale.SetPredefinedScale(ENPredefinedScaleStyle.Scientific); scale.Labels.Style.TextStyle.Fill = new NColorFill(NColor.White); scale.Labels.Style.TextStyle.Font = new NFont("Tinos", 10, ENFontStyle.Italic | ENFontStyle.Bold); scale.OuterMajorTicks.Stroke.Color = NColor.White; scale.OuterMajorTicks.Length = 6; scale.OuterMinorTicks.Stroke.Color = NColor.White; scale.OuterMinorTicks.Length = 4; scale.Ruler.Stroke.Color = NColor.White; scale.MinorTickCount = 4; // add some indicators m_RangeIndicator = new NRangeIndicator(); m_RangeIndicator.Value = 50; m_RangeIndicator.Palette = new NTwoColorPalette(NColor.DarkBlue, NColor.LightBlue); m_RangeIndicator.Stroke = null; m_RangeIndicator.EndWidth = 20; m_RangeIndicator.AllowDragging = true; radialGauge.Indicators.Add(m_RangeIndicator); m_NeedleIndicator = new NNeedleValueIndicator(); m_NeedleIndicator.Value = 79; m_NeedleIndicator.AllowDragging = true; radialGauge.Indicators.Add(m_NeedleIndicator); radialGauge.SweepAngle = new NAngle(270, NUnit.Degree); m_MarkerIndicator = new NMarkerValueIndicator(); m_MarkerIndicator.Value = 90; m_MarkerIndicator.AllowDragging = true; m_MarkerIndicator.OffsetOriginMode = ENIndicatorOffsetOriginMode.ScaleEnd; m_MarkerIndicator.OffsetFromScale = 0.0; radialGauge.Indicators.Add(m_MarkerIndicator); return(stack); }
protected void Page_Load(object sender, System.EventArgs e) { nChartControl1.BackgroundStyle.FrameStyle.Visible = false; nChartControl1.Panels.Clear(); // set a chart title NLabel header = new NLabel("Linear Gauge Indicators"); header.TextStyle.FontStyle = new NFontStyle("Times New Roman", 14, FontStyle.Italic); header.TextStyle.ShadowStyle.Type = ShadowType.LinearBlur; header.ContentAlignment = ContentAlignment.BottomRight; header.Location = new NPointL(new NLength(3, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); nChartControl1.Panels.Add(header); // create a linear gauge m_LinearGauge = new NLinearGaugePanel(); nChartControl1.Panels.Add(m_LinearGauge); m_LinearGauge.ContentAlignment = ContentAlignment.MiddleCenter; m_LinearGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.RoundedRect); m_LinearGauge.PaintEffect = new NGelEffectStyle(); m_LinearGauge.BackgroundFillStyle = new NGradientFillStyle(Color.Gray, Color.Black); m_LinearGauge.Axes.Clear(); NRange1DD celsiusRange = new NRange1DD(-40, 60); // add celsius and farenheit axes NGaugeAxis celsiusAxis = new NGaugeAxis(); celsiusAxis.Range = celsiusRange; celsiusAxis.Anchor = new NModelGaugeAxisAnchor(new NLength(-5), VertAlign.Center, RulerOrientation.Left, 0, 100); m_LinearGauge.Axes.Add(celsiusAxis); NGaugeAxis farenheitAxis = new NGaugeAxis(); farenheitAxis.Range = new NRange1DD(CelsiusToFarenheit(celsiusRange.Begin), CelsiusToFarenheit(celsiusRange.End)); farenheitAxis.Anchor = new NModelGaugeAxisAnchor(new NLength(5), VertAlign.Center, RulerOrientation.Right, 0, 100); m_LinearGauge.Axes.Add(farenheitAxis); // configure the scales NLinearScaleConfigurator celsiusScale = (NLinearScaleConfigurator)celsiusAxis.ScaleConfigurator; ConfigureScale(celsiusScale, "°C"); celsiusScale.Sections.Add(CreateSection(Color.Red, Color.Red, new NRange1DD(40, 60))); celsiusScale.Sections.Add(CreateSection(Color.Blue, Color.SkyBlue, new NRange1DD(-40, -20))); NLinearScaleConfigurator farenheitScale = (NLinearScaleConfigurator)farenheitAxis.ScaleConfigurator; ConfigureScale(farenheitScale, "°F"); farenheitScale.Sections.Add(CreateSection(Color.Red, Color.Red, new NRange1DD(CelsiusToFarenheit(40), CelsiusToFarenheit(60)))); farenheitScale.Sections.Add(CreateSection(Color.Blue, Color.SkyBlue, new NRange1DD(CelsiusToFarenheit(-40), CelsiusToFarenheit(-20)))); // now add two indicators m_Indicator1 = new NRangeIndicator(); m_Indicator1.Value = 10; m_Indicator1.StrokeStyle.Color = Color.DarkBlue; m_Indicator1.FillStyle = new NGradientFillStyle(GradientStyle.Vertical, GradientVariant.Variant1, Color.LightBlue, Color.Blue); m_LinearGauge.Indicators.Add(m_Indicator1); m_Indicator2 = new NMarkerValueIndicator(); m_Indicator2.Value = 33; m_Indicator2.Shape.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.White, Color.Red); m_Indicator2.Shape.StrokeStyle.Color = Color.DarkRed; m_LinearGauge.Indicators.Add(m_Indicator2); // init form controls if (!Page.IsPostBack) { WebExamplesUtilities.FillComboWithEnumValues(RangeIndicatorOriginModeDropDownList, typeof(OriginMode)); RangeIndicatorOriginModeDropDownList.SelectedIndex = 0; WebExamplesUtilities.FillComboWithEnumValues(ValueIndicatorShapeDropDownList, typeof(SmartShape2D)); ValueIndicatorShapeDropDownList.SelectedIndex = (int)SmartShape2D.Triangle; WebExamplesUtilities.FillComboWithEnumValues(GaugeOrientationDropDownList, typeof(LinearGaugeOrientation)); GaugeOrientationDropDownList.SelectedIndex = 0; WebExamplesUtilities.FillComboWithValues(ValueIndicatorDropDownList, -20, 60, 10); WebExamplesUtilities.FillComboWithValues(RangeIndicatorValueDropDownList, -20, 60, 10); WebExamplesUtilities.FillComboWithValues(RangeIndicatorOriginDropDownList, -20, 60, 10); RangeIndicatorOriginDropDownList.SelectedIndex = 5; RangeIndicatorValueDropDownList.SelectedValue = m_Indicator1.Value.ToString(); ValueIndicatorDropDownList.SelectedValue = m_Indicator2.Value.ToString(); } m_LinearGauge.Orientation = (LinearGaugeOrientation)GaugeOrientationDropDownList.SelectedIndex; if (m_LinearGauge.Orientation == LinearGaugeOrientation.Horizontal) { m_LinearGauge.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(50, NRelativeUnit.ParentPercentage)); m_LinearGauge.Size = new NSizeL(new NLength(90, NRelativeUnit.ParentPercentage), new NLength(55, NRelativeUnit.ParentPercentage)); } else { m_LinearGauge.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(54, NRelativeUnit.ParentPercentage)); m_LinearGauge.Size = new NSizeL(new NLength(37, NRelativeUnit.ParentPercentage), new NLength(85, NRelativeUnit.ParentPercentage)); } m_Indicator1.OriginMode = (OriginMode)RangeIndicatorOriginModeDropDownList.SelectedIndex; m_Indicator1.Origin = Convert.ToDouble(RangeIndicatorOriginDropDownList.SelectedValue); m_Indicator1.Value = Convert.ToDouble(RangeIndicatorValueDropDownList.SelectedValue); N2DSmartShapeFactory factory = new N2DSmartShapeFactory(m_Indicator2.Shape.FillStyle, m_Indicator2.Shape.StrokeStyle, m_Indicator2.Shape.ShadowStyle); m_Indicator2.Shape = factory.CreateShape((SmartShape2D)ValueIndicatorShapeDropDownList.SelectedIndex); m_Indicator2.Value = Convert.ToDouble(ValueIndicatorDropDownList.SelectedValue); if (m_Indicator1.OriginMode != OriginMode.Custom) { RangeIndicatorOriginDropDownList.Enabled = false; } else { RangeIndicatorOriginDropDownList.Enabled = true; } }
protected override NWidget CreateExampleControls() { NStackPanel stack = new NStackPanel(); NStackPanel propertyStack = new NStackPanel(); stack.Add(new NUniSizeBoxGroup(propertyStack)); // value indicator properties NGroupBox valueIndicatorGroupBox = new NGroupBox("Value"); propertyStack.Add(valueIndicatorGroupBox); NStackPanel valueIndicatorGroupBoxContent = new NStackPanel(); valueIndicatorGroupBox.Content = new NUniSizeBoxGroup(valueIndicatorGroupBoxContent); NMarkerValueIndicator markerValueIndicator = new NMarkerValueIndicator(); markerValueIndicator.Value = 10; m_RadialGauge.Indicators.Add(markerValueIndicator); m_ValueIndicatorUpDown = new NNumericUpDown(); m_ValueIndicatorUpDown.Value = m_ValueIndicator.Value; m_ValueIndicatorUpDown.ValueChanged += new Function <NValueChangeEventArgs>(OnValueIndicatorUpDownValueChanged); valueIndicatorGroupBoxContent.Add(new NPairBox("Value:", m_ValueIndicatorUpDown, true)); m_ValueIndicatorWidthUpDown = new NNumericUpDown(); m_ValueIndicatorWidthUpDown.Value = m_ValueIndicator.Width; m_ValueIndicatorWidthUpDown.ValueChanged += new Function <NValueChangeEventArgs>(OnValueIndicatorWidthUpDownValueChanged); valueIndicatorGroupBoxContent.Add(new NPairBox("Width:", m_ValueIndicatorWidthUpDown, true)); m_ValueIndicatorOffsetFromCenterUpDown = new NNumericUpDown(); m_ValueIndicatorOffsetFromCenterUpDown.Value = m_ValueIndicator.OffsetFromCenter; m_ValueIndicatorOffsetFromCenterUpDown.ValueChanged += new Function <NValueChangeEventArgs>(OnValueIndicatorOffsetFromCenterUpDownValueChanged); valueIndicatorGroupBoxContent.Add(new NPairBox("Offset From Center:", m_ValueIndicatorOffsetFromCenterUpDown, true)); m_ValueIndicatorShapeComboBox = new NComboBox(); m_ValueIndicatorShapeComboBox.FillFromEnum <ENNeedleShape>(); m_ValueIndicatorShapeComboBox.SelectedIndex = (int)m_ValueIndicator.Shape; m_ValueIndicatorShapeComboBox.SelectedIndexChanged += new Function <NValueChangeEventArgs>(OnValueIndicatorShapeComboBoxSelectedIndexChanged); valueIndicatorGroupBoxContent.Add(new NPairBox("Shape:", m_ValueIndicatorShapeComboBox, true)); // Range indicator properties NGroupBox rangeIndicatorGroupBox = new NGroupBox("Range"); propertyStack.Add(rangeIndicatorGroupBox); NStackPanel rangeIndicatorGroupBoxContent = new NStackPanel(); rangeIndicatorGroupBox.Content = new NUniSizeBoxGroup(rangeIndicatorGroupBoxContent); m_RangeIndicatorOriginModeComboBox = new NComboBox(); m_RangeIndicatorOriginModeComboBox.FillFromEnum <ENRangeIndicatorOriginMode>(); m_RangeIndicatorOriginModeComboBox.SelectedIndex = (int)m_RangeIndicator.OriginMode; rangeIndicatorGroupBoxContent.Add(new NPairBox("Origin Mode:", m_RangeIndicatorOriginModeComboBox, true)); m_RangeIndicatorOriginUpDown = new NNumericUpDown(); m_RangeIndicatorOriginUpDown.Value = m_RangeIndicator.Origin; m_RangeIndicatorOriginUpDown.ValueChanged += new Function <NValueChangeEventArgs>(OnRangeIndicatorOriginUpDownValueChanged); rangeIndicatorGroupBoxContent.Add(new NPairBox("Origin:", m_RangeIndicatorOriginUpDown, true)); m_RangeIndicatorValueUpDown = new NNumericUpDown(); m_RangeIndicatorValueUpDown.Value = m_RangeIndicator.Value; m_RangeIndicatorValueUpDown.ValueChanged += new Function <NValueChangeEventArgs>(OnRangeIndicatorValueUpDownValueChanged); rangeIndicatorGroupBoxContent.Add(new NPairBox("Value:", m_RangeIndicatorValueUpDown, true)); m_BeginAngleUpDown = new NNumericUpDown(); m_BeginAngleUpDown.Maximum = 360; m_BeginAngleUpDown.Minimum = -360; m_BeginAngleUpDown.Value = m_RadialGauge.BeginAngle.ToDegrees(); m_BeginAngleUpDown.ValueChanged += new Function <NValueChangeEventArgs>(OnBeginAngleUpDownValueChanged); propertyStack.Add(new NPairBox("Begin Angle:", m_BeginAngleUpDown, true)); m_SweepAngleUpDown = new NNumericUpDown(); m_SweepAngleUpDown.Maximum = 360; m_SweepAngleUpDown.Minimum = -360; m_SweepAngleUpDown.Value = m_RadialGauge.SweepAngle.ToDegrees(); m_SweepAngleUpDown.ValueChanged += new Function <NValueChangeEventArgs>(OnSweepAngleUpDownValueChanged); propertyStack.Add(new NPairBox("Sweep Angle:", m_SweepAngleUpDown, true)); return(stack); }
protected override NWidget CreateExampleContent() { NStackPanel stack = new NStackPanel(); stack.HorizontalPlacement = Layout.ENHorizontalPlacement.Left; // create a linear gauge m_LinearGauge = new NLinearGauge(); stack.Add(m_LinearGauge); m_LinearGauge.CapEffect = new NGelCapEffect(); m_LinearGauge.Border = base.CreateBorder(); m_LinearGauge.Padding = new NMargins(20); m_LinearGauge.BorderThickness = new NMargins(6); m_LinearGauge.BackgroundFill = new NStockGradientFill(NColor.Gray, NColor.Black); m_LinearGauge.PreferredSize = new NSize(400, 150); m_LinearGauge.Axes.Clear(); NRange celsiusRange = new NRange(-40.0, 60.0); // add celsius and farenheit axes NGaugeAxis celsiusAxis = new NGaugeAxis(); celsiusAxis.Range = celsiusRange; celsiusAxis.Anchor = new NModelGaugeAxisAnchor(-5, ENVerticalAlignment.Center, ENScaleOrientation.Left, 0.0f, 100.0f); m_LinearGauge.Axes.Add(celsiusAxis); NGaugeAxis farenheitAxis = new NGaugeAxis(); farenheitAxis.Range = new NRange(CelsiusToFarenheit(celsiusRange.Begin), CelsiusToFarenheit(celsiusRange.End)); farenheitAxis.Anchor = new NModelGaugeAxisAnchor(5, ENVerticalAlignment.Center, ENScaleOrientation.Right, 0.0f, 100.0f); m_LinearGauge.Axes.Add(farenheitAxis); // configure the scales NLinearScale celsiusScale = (NLinearScale)celsiusAxis.Scale; ConfigureScale(celsiusScale, "°C"); celsiusScale.Sections.Add(CreateSection(NColor.Red, NColor.Red, new NRange(40, 60))); celsiusScale.Sections.Add(CreateSection(NColor.Blue, NColor.SkyBlue, new NRange(-40, -20))); NLinearScale farenheitScale = (NLinearScale)farenheitAxis.Scale; ConfigureScale(farenheitScale, "°F"); farenheitScale.Sections.Add(CreateSection(NColor.Red, NColor.Red, new NRange(CelsiusToFarenheit(40), CelsiusToFarenheit(60)))); farenheitScale.Sections.Add(CreateSection(NColor.Blue, NColor.SkyBlue, new NRange(CelsiusToFarenheit(-40), CelsiusToFarenheit(-20)))); // now add two indicators m_Indicator1 = new NRangeIndicator(); m_Indicator1.Value = 10; m_Indicator1.Stroke.Color = NColor.DarkBlue; m_Indicator1.Fill = new NStockGradientFill(ENGradientStyle.Vertical, ENGradientVariant.Variant1, NColor.LightBlue, NColor.Blue); m_Indicator1.BeginWidth = 10; m_Indicator1.EndWidth = 10; m_LinearGauge.Indicators.Add(m_Indicator1); m_Indicator2 = new NMarkerValueIndicator(); m_Indicator2.Value = 33; // m_Indicator2.ShapFillStyle = new NStockGradientFill(ENGradientStyle.Horizontal, ENGradientVariant.Variant1, NColor.White, NColor.Red); // m_Indicator2.Shape.StrokeStyle.Color = Color.DarkRed; m_LinearGauge.Indicators.Add(m_Indicator2); return(stack); }
private NRadialGaugePanel CreateRadialGauge() { // create the radial gauge NRadialGaugePanel radialGauge = new NRadialGaugePanel(); radialGauge.PaintEffect = new NGlassEffectStyle(); radialGauge.BorderStyle = new NEdgeBorderStyle(BorderShape.Auto); radialGauge.ContentAlignment = ContentAlignment.BottomCenter; NGaugeAxis axis = (NGaugeAxis)radialGauge.Axes[0]; axis.Range = new NRange1DD(0, 250); NStandardScaleConfigurator scale = (NStandardScaleConfigurator)axis.ScaleConfigurator; scale.SetPredefinedScaleStyle(PredefinedScaleStyle.Presentation); scale.MinorTickCount = 4; scale.RulerStyle.BorderStyle.Width = new NLength(0); scale.RulerStyle.FillStyle = new NColorFillStyle(Color.DarkGray); NScaleSectionStyle scaleSection = new NScaleSectionStyle(); scaleSection.Range = new NRange1DD(220, 260); scaleSection.MajorTickStrokeStyle = new NStrokeStyle(Color.Red); scaleSection.MinorTickStrokeStyle = new NStrokeStyle(1, Color.Red, LinePattern.Dot, 0, 2); NTextStyle labelStyle = new NTextStyle(); labelStyle.FillStyle = new NGradientFillStyle(Color.Red, Color.DarkRed); labelStyle.FontStyle.Style = FontStyle.Bold; scaleSection.LabelTextStyle = labelStyle; scale.Sections.Add(scaleSection); NRangeIndicator rangeIndicator = new NRangeIndicator(); rangeIndicator.Value = 220; rangeIndicator.OriginMode = OriginMode.ScaleMax; rangeIndicator.FillStyle = new NColorFillStyle(Color.Red); rangeIndicator.StrokeStyle.Width = new NLength(0); rangeIndicator.BeginWidth = new NLength(-2); rangeIndicator.EndWidth = new NLength(-10); radialGauge.Indicators.Add(rangeIndicator); NMarkerValueIndicator markerIndicator = new NMarkerValueIndicator(); markerIndicator.Value = 90; radialGauge.Indicators.Add(markerIndicator); NNeedleValueIndicator needleIndictor = new NNeedleValueIndicator(); needleIndictor.Value = 0; needleIndictor.Shape.FillStyle = new NGradientFillStyle(GradientStyle.Horizontal, GradientVariant.Variant1, Color.White, Color.Red); needleIndictor.Shape.StrokeStyle.Color = Color.Red; radialGauge.Indicators.Add(needleIndictor); radialGauge.BeginAngle = -240; radialGauge.SweepAngle = 300; return(radialGauge); }