Esempio n. 1
0
        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;
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        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;
        }
Esempio n. 11
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();
        }
Esempio n. 12
0
        /// <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;
            }
        }
Esempio n. 15
0
        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);
        }