private void OnRadioGroupSelectedIndexChanged(NValueChangeEventArgs args) { if (m_Table == null) { return; } ENAdvancedGradientColorScheme[] predefinedGradientSchemes = NEnum.GetValues <ENAdvancedGradientColorScheme>(); INIterator <NNode> iterator = m_Table.GetSubtreeIterator(ENTreeTraversalOrder.DepthFirstPreOrder, new NInstanceOfSchemaFilter(NCanvas.NCanvasSchema)); int gradientVariant = (int)args.NewValue; int schemeIndex = 0; while (iterator.MoveNext()) { NCanvas canvas = (NCanvas)iterator.Current; canvas.Tag = NAdvancedGradientFill.Create(predefinedGradientSchemes[schemeIndex++], gradientVariant); canvas.InvalidateDisplay(); } }
protected override NWidget CreateExampleContent() { // Create a table panel to hold the canvases and the labels m_Table = new NTableFlowPanel(); m_Table.HorizontalPlacement = ENHorizontalPlacement.Left; m_Table.VerticalPlacement = ENVerticalPlacement.Top; m_Table.Padding = new NMargins(30); m_Table.HorizontalSpacing = 30; m_Table.VerticalSpacing = 30; m_Table.MaxOrdinal = 4; ENAdvancedGradientColorScheme[] predefinedGradientSchemes = NEnum.GetValues <ENAdvancedGradientColorScheme>(); for (int i = 0; i < predefinedGradientSchemes.Length; i++) { NStackPanel stack = new NStackPanel(); m_Table.Add(stack); stack.Direction = ENHVDirection.TopToBottom; stack.FillMode = ENStackFillMode.First; stack.FitMode = ENStackFitMode.First; // Create a widget with the proper filling NCanvas canvas = new NCanvas(); canvas.PreferredSize = new NSize(defaultCanvasWidth, defaultCanvasHeight); canvas.Tag = NAdvancedGradientFill.Create(predefinedGradientSchemes[i], 0); stack.Add(canvas); canvas.PrePaint += new Function <NCanvasPaintEventArgs>(OnCanvasPrePaint); // Create a label with the corresponding name NLabel label = new NLabel(predefinedGradientSchemes[i].ToString()); stack.Add(label); label.HorizontalPlacement = ENHorizontalPlacement.Center; } // The table must be scrollable NScrollContent scroll = new NScrollContent(); scroll.Content = m_Table; return(scroll); }
protected override NWidget CreateExampleContent() { // Create a table panel to hold the canvases and the labels m_Table = new NTableFlowPanel(); m_Table.HorizontalPlacement = ENHorizontalPlacement.Left; m_Table.VerticalPlacement = ENVerticalPlacement.Top; m_Table.Padding = new NMargins(30); m_Table.HorizontalSpacing = 30; m_Table.VerticalSpacing = 30; m_Table.MaxOrdinal = 3; string[] texts = new string[] { "Azure", "Flow", "Bulb", "Eclipse", "The Eye", "Medusa", "Kaleidoscope", "Reactor", "Green" }; // Create the advanced gradients NAdvancedGradientFill[] fills = new NAdvancedGradientFill[] { AzureLight, Flow, Bulb, Eclipse, TheEye, Medusa, Kaleidoscope, Reactor, Green }; // Add a canvas for each demonstrated gradient for (int i = 0; i < fills.Length; i++) { NStackPanel stack = new NStackPanel(); m_Table.Add(stack); stack.Direction = ENHVDirection.TopToBottom; stack.FillMode = ENStackFillMode.First; stack.FitMode = ENStackFitMode.First; // Create a widget with the proper filling NCanvas canvas = new NCanvas(); canvas.PreferredSize = new NSize(defaultCanvasWidth, defaultCanvasHeight); canvas.Tag = fills[i]; stack.Add(canvas); canvas.PrePaint += new Function <NCanvasPaintEventArgs>(OnCanvasPrePaint); // Create a label with the corresponding name NLabel label = new NLabel(texts[i]); stack.Add(label); label.HorizontalPlacement = ENHorizontalPlacement.Center; } // The table must be scrollable NScrollContent scroll = new NScrollContent(); scroll.Content = m_Table; return(scroll); }
/// <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.CapEffect = new NGelCapEffect(); m_LinearGauge.Border = base.CreateBorder(); m_LinearGauge.Padding = new NMargins(20); m_LinearGauge.BorderThickness = new NMargins(6); controlStack.Add(m_LinearGauge); // create the background panel NAdvancedGradientFill advGradient = new NAdvancedGradientFill(); advGradient.BackgroundColor = NColor.Black; advGradient.Points.Add(new NAdvancedGradientPoint(NColor.LightGray, new NAngle(10, NUnit.Degree), 0.1f, 0, 1.0f, ENAdvancedGradientPointShape.Circle)); m_LinearGauge.BackgroundFill = advGradient; m_LinearGauge.Axes.Clear(); NGaugeAxis axis = new NGaugeAxis(); m_LinearGauge.Axes.Add(axis); axis.Anchor = new NModelGaugeAxisAnchor(24.0, ENVerticalAlignment.Center, ENScaleOrientation.Left); ConfigureScale((NLinearScale)axis.Scale); // add some indicators m_LinearGauge.Indicators.Add(new NMarkerValueIndicator(60)); // create the radial gauge m_RadialGauge = new NRadialGauge(); controlStack.Add(m_RadialGauge); m_RadialGauge.CapEffect = new NGlassCapEffect(); m_RadialGauge.Dial = new NDial(ENDialShape.Circle, new NEdgeDialRim()); // set some background advGradient = new NAdvancedGradientFill(); advGradient.BackgroundColor = NColor.Black; advGradient.Points.Add(new NAdvancedGradientPoint(NColor.LightGray, new NAngle(10, NUnit.Degree), 0.1f, 0, 1.0f, ENAdvancedGradientPointShape.Circle)); m_RadialGauge.Dial.BackgroundFill = advGradient; m_RadialGauge.CapEffect = new NGlassCapEffect(ENCapEffectShape.Ellipse); // create the radial gauge m_RadialGauge.SweepAngle = new NAngle(270, NUnit.Degree); m_RadialGauge.BeginAngle = new NAngle(-90, NUnit.Degree); // FIX remove axis.Scale.Title.Text = "Axis Title"; NStandardScale scale = axis.Scale as NStandardScale; scale.MajorTickMode = ENMajorTickMode.AutoMinDistance; scale.MinTickDistance = 50; // configure the axis m_RadialGauge.Axes.Clear(); axis = new NGaugeAxis(); axis.Range = new NRange(0, 100); axis.Anchor.ScaleOrientation = ENScaleOrientation.Right; axis.Anchor = new NDockGaugeAxisAnchor(ENGaugeAxisDockZone.Top, true, ENScaleOrientation.Right, 0, 100); m_RadialGauge.Axes.Add(axis); ConfigureScale((NLinearScale)axis.Scale); // add some indicators NNeedleValueIndicator needle = new NNeedleValueIndicator(60); needle.OffsetOriginMode = ENIndicatorOffsetOriginMode.ScaleMiddle; needle.OffsetFromScale = 15; m_RadialGauge.Indicators.Add(needle); return(stack); }
protected override NWidget CreateExampleContent() { NStackPanel stack = new NStackPanel(); stack.HorizontalPlacement = Layout.ENHorizontalPlacement.Left; NStackPanel controlStack = new NStackPanel(); stack.Add(controlStack); // create the radial gauge m_RadialGauge = new NRadialGauge(); // radialGauge.PreferredSize = new NSize(0, 50); // radialGauge.ContentAlignment = ContentAlignment.MiddleCenter; m_RadialGauge.SweepAngle = new NAngle(270, NUnit.Degree); m_RadialGauge.BeginAngle = new NAngle(-225, NUnit.Degree); m_RadialGauge.NeedleCap.Visible = false; m_RadialGauge.PreferredSize = defaultRadialGaugeSize; // configure scale NGaugeAxis axis = new NGaugeAxis(); m_RadialGauge.Axes.Add(axis); NStandardScale scale = (NStandardScale)axis.Scale; scale.SetPredefinedScale(ENPredefinedScaleStyle.PresentationNoStroke); scale.Labels.Style.TextStyle.Font = new NFont("Arimo", 12.0, ENFontStyle.Italic); scale.Labels.Style.TextStyle.Fill = new NColorFill(NColor.Black); scale.Labels.Style.Angle = new NScaleLabelAngle(ENScaleLabelAngleMode.Scale, 0.0); scale.MinorTickCount = 4; scale.Ruler.Stroke.Width = 0; scale.Ruler.Fill = new NColorFill(NColor.DarkGray); // create the knob indicator m_KnobIndicator = new NKnobIndicator(); m_KnobIndicator.OffsetFromScale = -3; m_KnobIndicator.AllowDragging = true; // apply fill style to the marker NAdvancedGradientFill advancedGradientFill = new NAdvancedGradientFill(); advancedGradientFill.BackgroundColor = NColor.Red; advancedGradientFill.Points.Add(new NAdvancedGradientPoint(NColor.White, new NAngle(20, NUnit.Degree), 20, 0, 100, ENAdvancedGradientPointShape.Circle)); m_KnobIndicator.Fill = advancedGradientFill; m_KnobIndicator.ValueChanged += new Function <NValueChangeEventArgs>(OnKnobValueChanged); m_RadialGauge.Indicators.Add(m_KnobIndicator); // create the numeric display m_NumericDisplay = new NNumericLedDisplay(); m_NumericDisplay.PreferredSize = new NSize(0, 60); m_NumericDisplay.BackgroundFill = new NColorFill(NColor.Black); m_NumericDisplay.Border = NBorder.CreateSunken3DBorder(new NUIThemeColorMap(ENUIThemeScheme.WindowsClassic)); m_NumericDisplay.BorderThickness = new NMargins(6); m_NumericDisplay.ContentAlignment = ENContentAlignment.MiddleCenter; m_NumericDisplay.Margins = new NMargins(5); m_NumericDisplay.Padding = new NMargins(5); m_NumericDisplay.CapEffect = new NGelCapEffect(); controlStack.Add(m_RadialGauge); controlStack.Add(m_NumericDisplay); return(stack); }