protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our chart from the layout resource, var chart = FindViewById <SciChartSurface>(Resource.Id.Chart); // Create a numeric X axis var xAxis = new NumericAxis(this) { AxisTitle = "Number of Samples (per Series)" }; // Create a numeric Y axis var yAxis = new NumericAxis(this) { AxisTitle = "Value", VisibleRange = new DoubleRange(-1, 1) }; // Add xAxis to the XAxes collection of the chart chart.XAxes.Add(xAxis); // Add yAxis to the YAxes collection of the chart chart.YAxes.Add(yAxis); // Create XyDataSeries to host data for our chart var lineData = new XyDataSeries <double, double>() { SeriesName = "Sin(x)" }; var scatterData = new XyDataSeries <double, double>() { SeriesName = "Cos(x)" }; // Append data which should be drawn for (var i = 0; i < 1000; i++) { lineData.Append(i, Math.Sin(i * 0.1)); scatterData.Append(i, Math.Cos(i * 0.1)); } double phase = 0; var timer = new Timer(30) { AutoReset = true }; var lineBuffer = new DoubleValues(1000); var scatterBuffer = new DoubleValues(1000); // Update on each tick of timer timer.Elapsed += (s, e) => { lineBuffer.Clear(); scatterBuffer.Clear(); for (int i = 0; i < 1000; i++) { lineBuffer.Add(Math.Sin(i * 0.1 + phase)); scatterBuffer.Add(Math.Cos(i * 0.1 + phase)); } using (chart.SuspendUpdates()) { lineData.UpdateRangeYAt(0, lineBuffer); scatterData.UpdateRangeYAt(0, scatterBuffer); } phase += 0.01; }; timer.Start(); var lineSeries = new FastLineRenderableSeries() { DataSeries = lineData, StrokeStyle = new SolidPenStyle(Color.LightBlue, 2) }; // Create scatter series with data appended into scatterData var scatterSeries = new XyScatterRenderableSeries() { DataSeries = scatterData, PointMarker = new EllipsePointMarker() { Width = 10, Height = 10, StrokeStyle = new SolidPenStyle(Color.Green, 2), FillStyle = new SolidBrushStyle(Color.LightBlue) } }; // Add the renderable series to the RenderableSeries collection of the chart chart.RenderableSeries.Add(lineSeries); chart.RenderableSeries.Add(scatterSeries); // Create interactivity modifiers var pinchZoomModifier = new PinchZoomModifier(); pinchZoomModifier.SetReceiveHandledEvents(true); var zoomPanModifier = new ZoomPanModifier(); zoomPanModifier.SetReceiveHandledEvents(true); var zoomExtentsModifier = new ZoomExtentsModifier(); zoomExtentsModifier.SetReceiveHandledEvents(true); var yAxisDragModifier = new YAxisDragModifier(); yAxisDragModifier.SetReceiveHandledEvents(true); // Create and configure legend var legendModifier = new LegendModifier(this); legendModifier.SetLegendPosition(GravityFlags.Bottom | GravityFlags.CenterHorizontal, 10); legendModifier.SetOrientation(Orientation.Horizontal); // Create RolloverModifier to show tooltips var rolloverModifier = new RolloverModifier(); rolloverModifier.SetReceiveHandledEvents(true); // Create modifier group from declared modifiers var modifiers = new ModifierGroup(pinchZoomModifier, zoomPanModifier, zoomExtentsModifier, yAxisDragModifier, rolloverModifier, legendModifier); // Add the interactions to the ChartModifiers collection of the chart chart.ChartModifiers.Add(modifiers); }
private void InitSecondChart() { WvlLogger.Log(LogType.TraceAll, "InitSecondChart()"); var xAxis = new NumericAxis(this) { AutoRange = AutoRange.Always, DrawMajorBands = false, DrawLabels = false, DrawMajorTicks = false, DrawMinorTicks = false, DrawMajorGridLines = false, DrawMinorGridLines = false, FlipCoordinates = true, AxisAlignment = AxisAlignment.Left }; var yAxis = new NumericAxis(this) { DrawMajorBands = false, DrawLabels = false, DrawMajorTicks = false, DrawMinorTicks = false, DrawMajorGridLines = false, DrawMinorGridLines = false, FlipCoordinates = true, AxisAlignment = AxisAlignment.Bottom }; // from XF sample /* * var rs = new FastUniformHeatmapRenderableSeries * { * DataSeries = heatmapSeries, * ColorMap = new SciChart.Charting.Visuals.RenderableSeries.ColorMap( * new int[] { Color.Transparent, Color.DarkBlue, Color.Purple, Color.Red, Color.Yellow, Color.White }, * new float[] { 0f, 0.2f, 0.4f, 0.6f, 0.8f, 1f } * ) * }; */ // from Android sample var rs = new FastUniformHeatmapRenderableSeries { DataSeries = heatmapSeries, Maximum = 70, Minimum = -30, ColorMap = new SciChart.Charting.Visuals.RenderableSeries.ColorMap( new int[] { Color.Transparent, Color.DarkBlue, Color.Purple, Color.Red, Color.Yellow, Color.White }, new float[] { 0f, 0.0001f, 0.25f, 0.50f, 0.75f, 1f } ) }; #region Zoom and Pan // Create interactivity modifiers var pinchZoomModifier = new PinchZoomModifier(); pinchZoomModifier.SetReceiveHandledEvents(true); var zoomPanModifier = new ZoomPanModifier(); zoomPanModifier.SetReceiveHandledEvents(true); var zoomExtentsModifier = new ZoomExtentsModifier(); zoomExtentsModifier.SetReceiveHandledEvents(true); var yAxisDragModifier = new YAxisDragModifier(); yAxisDragModifier.SetReceiveHandledEvents(true); // Create modifier group from declared modifiers var modifiers = new ModifierGroup(pinchZoomModifier, zoomPanModifier, zoomExtentsModifier, yAxisDragModifier); #endregion using (HeatmapSurface.SuspendUpdates()) { HeatmapSurface.XAxes.Add(xAxis); HeatmapSurface.YAxes.Add(yAxis); HeatmapSurface.RenderableSeries.Add(rs); HeatmapSurface.ChartModifiers.Add(modifiers); } }
private void InitSecondChart() { WvlLogger.Log(LogType.TraceAll, "InitFirstChart()"); var xAxis = new NumericAxis(this) { AutoRange = AutoRange.Always, //AutoRange = AutoRange.Never, /* * DrawMajorBands = false, * DrawLabels = false, * DrawMajorTicks = false, * DrawMinorTicks = false, * DrawMajorGridLines = false, * DrawMinorGridLines = false, */ FlipCoordinates = true, AxisAlignment = AxisAlignment.Left, //VisibleRange = new DoubleRange(900, 1000) //VisibleRange = new DoubleRange(0, 5) //VisibleRange = new DoubleRange(-200,2048) //VisibleRange = new DoubleRange(100, 110), //GrowBy = new DoubleRange(1, 1), }; var yAxis = new NumericAxis(this) { //AutoRange = AutoRange.Always, //AutoRange = AutoRange.Never, /* * DrawMajorBands = false, * DrawLabels = false, * DrawMajorTicks = false, * DrawMinorTicks = false, * DrawMajorGridLines = false, * DrawMinorGridLines = false, */ FlipCoordinates = true, AxisAlignment = AxisAlignment.Bottom, //VisibleRange = new DoubleRange(height-60, height), //VisibleRange = new DoubleRange(height-120, height), //VisibleRange = new DoubleRange(height - 10, height), VisibleRange = new DoubleRange(height / 2, height), //VisibleRange = new DoubleRange(-3000, 20000) //VisibleRange = new DoubleRange(-300,2048) //GrowBy = new DoubleRange(1, 1), }; // from XF sample /* * var rs = new FastUniformHeatmapRenderableSeries * { * DataSeries = heatmapSeries, * ColorMap = new SciChart.Charting.Visuals.RenderableSeries.ColorMap( * new int[] { Color.Transparent, Color.DarkBlue, Color.Purple, Color.Red, Color.Yellow, Color.White }, * new float[] { 0f, 0.2f, 0.4f, 0.6f, 0.8f, 1f } * ) * }; */ // from Android.Kotlin sample var rs = new FastUniformHeatmapRenderableSeries { DataSeries = heatmapSeries, //Maximum = 70, //Minimum = -30, //Maximum = 30, //Minimum = -40, Maximum = 40, Minimum = -40, /* * CellTextStyle = new Font(). * * .withCellTextStyle(sciChartBuilder.newFont().withTextSize(8).withTextColor(ColorUtil.White).build()) * .withDrawTextInCell(true) */ //ColorMap = new SciChart.Charting.Visuals.RenderableSeries.ColorMap( // new int[] { Color.Transparent, Color.DarkBlue, Color.Purple, Color.Red, Color.Yellow, Color.White }, // new float[] { 0f, 0.0001f, 0.25f, 0.50f, 0.75f, 1f }) /* * ColorMap = new SciChart.Charting.Visuals.RenderableSeries.ColorMap( * //new int[] { * // Color.Transparent, * // Color.White, * // Color.LightYellow, * // Color.Yellow, * // Color.Orange, * // Color.OrangeRed, * // Color.Red, * // Color.Pink, * // Color.Purple, * // Color.DarkBlue, * // Color.Black }, * new int[] { * Color.Black, * Color.DarkBlue, * Color.Purple, * Color.Pink, * Color.Red, * Color.OrangeRed, * Color.Orange, * Color.Yellow, * Color.LightYellow, * Color.White, * Color.Transparent }, * new float[] { * 0f, * 0.10f, * 0.20f, * 0.30f, * 0.40f, * 0.50f, * 0.60f, * 0.70f, * 0.80f, * 0.90f, * 1f }), * //new float[] { * // 0f, * // 0.55f, * // 0.60f, * // 0.65f, * // 0.70f, * // 0.75f, * // 0.80f, * // 0.85f, * // 0.90f, * // 0.95f, * // 1f }), */ ColorMap = new SciChart.Charting.Visuals.RenderableSeries.ColorMap( new int[] { Color.Black, Color.Purple, Color.Red, Color.Orange, Color.Yellow, Color.White }, //new float[] { // 0f, // 0.20f, // 0.40f, // 0.60f, // 0.80f, // 1f }), //new float[] { // 0.50f, // 0.60f, // 0.70f, // 0.80f, // 0.90f, // 1f }), new float[] { 0.25f, 0.50f, 0.65f, 0.80f, 0.90f, 1f }), /* * CellTextStyle = new SciChart.Drawing.Common.FontStyle(16, Color.White), * DrawTextInCell = true, */ }; #region Zoom and Pan // Create interactivity modifiers var pinchZoomModifier = new PinchZoomModifier(); pinchZoomModifier.SetReceiveHandledEvents(true); var zoomPanModifier = new ZoomPanModifier(); zoomPanModifier.SetReceiveHandledEvents(true); var zoomExtentsModifier = new ZoomExtentsModifier(); zoomExtentsModifier.SetReceiveHandledEvents(true); var yAxisDragModifier = new YAxisDragModifier(); yAxisDragModifier.SetReceiveHandledEvents(true); var rollOverModifer = new RolloverModifier { ShowTooltip = true, ShowAxisLabels = true, DrawVerticalLine = true }; // Create modifier group from declared modifiers var modifiers = new ModifierGroup(pinchZoomModifier, zoomPanModifier, zoomExtentsModifier, yAxisDragModifier, rollOverModifer); #endregion using (HeatmapSurface.SuspendUpdates()) { HeatmapSurface.XAxes.Add(xAxis); HeatmapSurface.YAxes.Add(yAxis); HeatmapSurface.RenderableSeries.Add(rs); //HeatmapSurface.ChartModifiers.Add(modifiers); } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our chart from the layout resource, var chart = FindViewById <SciChartSurface>(Resource.Id.Chart); // Create a numeric X axis var xAxis = new NumericAxis(this) { AxisTitle = "Number of Samples (per Series)" }; // Create a numeric Y axis var yAxis = new NumericAxis(this) { AxisTitle = "Value", VisibleRange = new DoubleRange(-1, 1) }; // Add xAxis to the XAxes collection of the chart chart.XAxes.Add(xAxis); // Add yAxis to the YAxes collection of the chart chart.YAxes.Add(yAxis); // Create XyDataSeries to host data for our chart var lineData = new XyDataSeries <double, double>() { SeriesName = "Sin(x)" }; var scatterData = new XyDataSeries <double, double>() { SeriesName = "Cos(x)" }; // Append data which should be drawn for (var i = 0; i < 1000; i++) { lineData.Append(i, Math.Sin(i * 0.1)); scatterData.Append(i, Math.Cos(i * 0.1)); } var lineSeries = new FastLineRenderableSeries() { DataSeries = lineData, StrokeStyle = new SolidPenStyle(Color.LightBlue, 2) }; // Create scatter series with data appended into scatterData var scatterSeries = new XyScatterRenderableSeries() { DataSeries = scatterData, PointMarker = new EllipsePointMarker() { Width = 10, Height = 10, StrokeStyle = new SolidPenStyle(Color.Green, 2), FillStyle = new SolidBrushStyle(Color.LightBlue) } }; // Add the renderable series to the RenderableSeries collection of the chart chart.RenderableSeries.Add(lineSeries); chart.RenderableSeries.Add(scatterSeries); // Create interactivity modifiers var pinchZoomModifier = new PinchZoomModifier(); pinchZoomModifier.SetReceiveHandledEvents(true); var zoomPanModifier = new ZoomPanModifier(); zoomPanModifier.SetReceiveHandledEvents(true); var zoomExtentsModifier = new ZoomExtentsModifier(); zoomExtentsModifier.SetReceiveHandledEvents(true); var yAxisDragModifier = new YAxisDragModifier(); yAxisDragModifier.SetReceiveHandledEvents(true); // Create modifier group from declared modifiers var modifiers = new ModifierGroup(pinchZoomModifier, zoomPanModifier, zoomExtentsModifier, yAxisDragModifier); // Add the interactions to the ChartModifiers collection of the chart chart.ChartModifiers.Add(modifiers); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our chart from the layout resource, var chart = FindViewById <SciChartSurface>(Resource.Id.Chart); // Create a numeric X axis var xAxis = new NumericAxis(this) { AxisTitle = "Number of Samples (per Series)" }; // Create a numeric Y axis var yAxis = new NumericAxis(this) { AxisTitle = "Value", VisibleRange = new DoubleRange(-1, 1) }; // Create a secondary numeric Y Axis var secondaryYAxis = new NumericAxis(this) { AxisTitle = "Secondary", AxisId = "SecondaryAxis", AxisAlignment = AxisAlignment.Left, VisibleRange = new DoubleRange(-2, 2) }; // Add xAxis to the XAxes collection of the chart chart.XAxes.Add(xAxis); // Add yAxis to the YAxes collection of the chart chart.YAxes.Add(yAxis); // Add secondaryYAxis to the YAxes collection of the chart chart.YAxes.Add(secondaryYAxis); const int fifoCapacity = 500; // Create XyDataSeries to host data for our chart var lineData = new XyDataSeries <double, double>() { SeriesName = "Sin(x)", FifoCapacity = new Integer(fifoCapacity) }; var scatterData = new XyDataSeries <double, double>() { SeriesName = "Cos(x)", FifoCapacity = new Integer(fifoCapacity) }; var timer = new Timer(30) { AutoReset = true }; var x = lineData.Count; // Append on each tick of timer timer.Elapsed += (s, e) => { using (chart.SuspendUpdates()) { lineData.Append(x, Math.Sin(x * 0.1)); scatterData.Append(x, Math.Cos(x * 0.1)); // add label every 100 data points if (x % 100 == 0) { // create text annotation with label var label = new TextAnnotation(this) { Text = "N", X1Value = x, Y1Value = 0, HorizontalAnchorPoint = HorizontalAnchorPoint.Center, VerticalAnchorPoint = VerticalAnchorPoint.Center, FontStyle = new FontStyle(20, Color.White), Background = new ColorDrawable(Color.DarkGreen), ZIndex = 1, YAxisId = x % 200 == 0 ? AxisBase.DefaultAxisId : "SecondaryAxis" }; // add label into annotation collection chart.Annotations.Add(label); // if we add annotation and x > fifoCapacity // then we need to remove annotation which goes out of the screen if (x > fifoCapacity) { chart.Annotations.Remove(0); } } // zoom series to fit viewport size into XAxis direction chart.ZoomExtentsX(); x++; } }; timer.Start(); // Create line series with data appended into lineData var lineSeries = new FastLineRenderableSeries() { DataSeries = lineData, StrokeStyle = new SolidPenStyle(Color.LightBlue, 2) }; // Create scatter series with data appended into scatterData var scatterSeries = new XyScatterRenderableSeries() { DataSeries = scatterData, PointMarker = new EllipsePointMarker() { Width = 10, Height = 10, StrokeStyle = new SolidPenStyle(Color.Green, 2), FillStyle = new SolidBrushStyle(Color.LightBlue) }, YAxisId = "SecondaryAxis" }; // Add the renderable series to the RenderableSeries collection of the chart chart.RenderableSeries.Add(lineSeries); chart.RenderableSeries.Add(scatterSeries); // Create interactivity modifiers var pinchZoomModifier = new PinchZoomModifier(); pinchZoomModifier.SetReceiveHandledEvents(true); var zoomPanModifier = new ZoomPanModifier(); zoomPanModifier.SetReceiveHandledEvents(true); var zoomExtentsModifier = new ZoomExtentsModifier(); zoomExtentsModifier.SetReceiveHandledEvents(true); var yAxisDragModifier = new YAxisDragModifier(); yAxisDragModifier.SetReceiveHandledEvents(true); // Create and configure legend var legendModifier = new LegendModifier(this); legendModifier.SetLegendPosition(GravityFlags.Bottom | GravityFlags.CenterHorizontal, 10); legendModifier.SetOrientation(Orientation.Horizontal); // Create RolloverModifier to show tooltips var rolloverModifier = new RolloverModifier(); rolloverModifier.SetReceiveHandledEvents(true); // Create modifier group from declared modifiers var modifiers = new ModifierGroup(pinchZoomModifier, zoomPanModifier, zoomExtentsModifier, yAxisDragModifier, rolloverModifier, legendModifier); // Add the interactions to the ChartModifiers collection of the chart chart.ChartModifiers.Add(modifiers); }
protected virtual void OnCreateModifiers(SciChartInteractionToolbar toolbar, ISciChartSurface scs) { var listMod = new List <ToolbarItem>(); var surface = scs as SciChartSurface; var isPolar = surface != null && (surface.IsPolarChart || surface.XAxes.Any(x => x.IsPolarAxis) || surface.YAxes.Any(x => x.IsPolarAxis)); // RubberBandXyZoomModifier var rbzm = new RubberBandXyZoomModifier { IsXAxisOnly = IsZoomXAxisOnly }; _modifiersInAllMode.ChildModifiers.Add(rbzm); _modifiersInDevMode.ChildModifiers.Add(rbzm); if (!isPolar) { // ZoomPanModifier var zpm = new ZoomPanModifier { ClipModeX = ClipMode.None, IsEnabled = false }; _modifiersInAllMode.ChildModifiers.Add(zpm); _modifiersInDevMode.ChildModifiers.Add(zpm); } // ZoomExtentsModifier var zoomExtents = new ZoomExtentsModifier { ExecuteOn = ExecuteOn.MouseDoubleClick }; _modifiersInAllMode.ChildModifiers.Add(zoomExtents); _modifiersInDevMode.ChildModifiers.Add(zoomExtents); // SeriesSelectionModifier var selStyle = new Style(typeof(BaseRenderableSeries)); selStyle.Setters.Add(new Setter(BaseRenderableSeries.StrokeProperty, Colors.Red)); selStyle.Setters.Add(new Setter(BaseRenderableSeries.StrokeThicknessProperty, 2)); selStyle.Seal(); var seriesSelection = new SeriesSelectionModifier { SelectedSeriesStyle = selStyle, ReceiveHandledEvents = true, IsEnabled = false }; _modifiersInDevMode.ChildModifiers.Add(seriesSelection); // AnnotationCreationModifier var annotationMod = new CustomAnnotationCreationModifier(); annotationMod.AnnotationCreated += (sender, args) => { var modifier = (CustomAnnotationCreationModifier)sender; if (modifier != null) { foreach (var annotation in scs.Annotations) { var newAnnotation = (annotation as AnnotationBase); if (newAnnotation != null) { newAnnotation.IsEditable = true; newAnnotation.CanEditText = true; } } modifier.IsEnabled = false; } }; annotationMod.IsEnabled = false; _modifiersInDevMode.ChildModifiers.Add(annotationMod); // CustomRotateChartModifier var rotate = new CustomRotateChartModifier(); var propertyPath = new PropertyPath(CustomRotateChartModifier.IsRotationEnabledProperty); var binding = new Binding() { Source = this, Path = propertyPath }; rotate.SetBinding(ChartModifierBase.IsEnabledProperty, binding); _modifiersInDevMode.ChildModifiers.Add(rotate); // Custom Export Modifier var export = new CustomExportModifier(); _modifiersInDevMode.ChildModifiers.Add(export); // CustomThemeChangeModifier var theme = new CustomThemeChangeModifier(); _modifiersInDevMode.ChildModifiers.Add(theme); // LegendModifier var legend = new LegendModifier { UseInterpolation = true, ShowLegend = false, ShowVisibilityCheckboxes = true, ShowSeriesMarkers = true }; _modifiersInDevMode.ChildModifiers.Add(legend); // MouseWheelZoomModifier var mouseWheel = new MouseWheelZoomModifier(); _modifiersInAllMode.ChildModifiers.Add(mouseWheel); _modifiersInDevMode.ChildModifiers.Add(mouseWheel); // CustomFlipModifier var flip = new CustomFlipModifier(); _modifiersInDevMode.ChildModifiers.Add(flip); // RolloverModifier var rollover = new RolloverModifier { IsEnabled = false, UseInterpolation = true, DrawVerticalLine = true, ReceiveHandledEvents = true, ShowAxisLabels = true, ShowTooltipOn = ShowTooltipOptions.Always }; _modifiersInDevMode.ChildModifiers.Add(rollover); // CursorModifier var cursorMod = new CursorModifier { IsEnabled = false, ShowTooltipOn = ShowTooltipOptions.MouseOver, ReceiveHandledEvents = true, ShowAxisLabels = false, ShowTooltip = true }; _modifiersInDevMode.ChildModifiers.Add(cursorMod); // TooltipModifier var toolTipMod = new TooltipModifier { ReceiveHandledEvents = true, IsEnabled = false, UseInterpolation = true }; _modifiersInDevMode.ChildModifiers.Add(toolTipMod); if (!isPolar) { // YAxisDragModifier var yAxisDrag = new YAxisDragModifier(); _modifiersInDevMode.ChildModifiers.Add(yAxisDrag); // XAxisDragModifier var xAxisDrag = new XAxisDragModifier(); _modifiersInDevMode.ChildModifiers.Add(xAxisDrag); } var exampleModifiers = (scs.ChartModifier as ModifierGroup); if (exampleModifiers == null) { exampleModifiers = new ModifierGroup(); if (scs.ChartModifier != null) { exampleModifiers.ChildModifiers.Add(scs.ChartModifier); } } var devMods = new ModifierGroup(); var userMods = new ModifierGroup(); foreach (var devMod in _modifiersInDevMode.ChildModifiers) { var devModName = devMod.ModifierName; if (devMod is CustomAnnotationCreationModifier) { devModName = "AnnotationCreationModifier"; } if (!(exampleModifiers.ChildModifiers.Any(x => x.ModifierName == devModName))) { devMods.ChildModifiers.Add(devMod); } else { if (exampleModifiers.ChildModifiers.Count(x => x.ModifierName == devModName) == 1) { var exampleMod = exampleModifiers.ChildModifiers.Single(x => x.ModifierName == devModName); if (!GetAppearceInToolbar((ChartModifierBase)exampleMod)) { continue; } devMods.ChildModifiers.Add(exampleMod); } else { foreach (var exampleMod in exampleModifiers.ChildModifiers.Where(x => x.ModifierName == devModName && GetAppearceInToolbar((ChartModifierBase)x))) { devMods.ChildModifiers.Add(exampleMod); } } } } foreach (var inAllMod in _modifiersInAllMode.ChildModifiers) { var modName = inAllMod.ModifierName; if (!(exampleModifiers.ChildModifiers.Any(x => x.ModifierName == modName))) { userMods.ChildModifiers.Add(inAllMod); } else { if (exampleModifiers.ChildModifiers.Count(x => x.ModifierName == modName) == 1) { var exampleMod = exampleModifiers.ChildModifiers.Single(x => x.ModifierName == modName); if (!GetAppearceInToolbar((ChartModifierBase)exampleMod)) { continue; } userMods.ChildModifiers.Add(exampleMod); } else { foreach (var exampleMod in exampleModifiers.ChildModifiers.Where(x => x.ModifierName == modName && GetAppearceInToolbar((ChartModifierBase)x))) { userMods.ChildModifiers.Add(exampleMod); } } } } foreach (var exampleMod in exampleModifiers.ChildModifiers.Where(x => GetAppearceInToolbar((ChartModifierBase)x))) { if (!devMods.ChildModifiers.Any(x => x.ModifierName == exampleMod.ModifierName)) { devMods.ChildModifiers.Add(exampleMod); } if (!userMods.ChildModifiers.Any(x => x.ModifierName == exampleMod.ModifierName)) { userMods.ChildModifiers.Add(exampleMod); } } _modifiersInDevMode = devMods; _modifiersInUserMode = userMods; // Set modifiers to the chart scs.ChartModifier = IsDeveloperMode ? _modifiersInDevMode : _modifiersInUserMode; var wrappers = WrapModifiers(toolbar.IsDeveloperMode ? toolbar._modifiersInDevMode.ChildModifiers : toolbar._modifiersInUserMode.ChildModifiers); // Set modifiers to the ItemSource for ItemsControl listMod.AddRange(wrappers); if (listMod.Any(x => x.Modifier.ModifierName == "AnnotationCreationModifier" || x.Modifier is VerticalSliceModifier)) { listMod.Remove(listMod.FirstOrDefault(x => x.Modifier.ModifierName == "AnnotationCreationModifier")); listMod.Remove(listMod.FirstOrDefault(x => x.Modifier is VerticalSliceModifier)); } ModifiersSource = listMod; }
public TrackToShow() { XAxisCollection = new AxisCollection(); YAxis = new NumericAxis { DrawMajorTicks = false, AxisAlignment = AxisAlignment.Left, FlipCoordinates = true, MinimalZoomConstrain = 1, Name = "yAxisDesign", }; HasCurves = false; ChartModifier = new ModifierGroup(); SeriesModifier = new SeriesSelectionModifier { ReceiveHandledEvents = true }; ScaleModifier = new ScaleFactorModifier { ReceiveHandledEvents = true }; ZoomPanModifier = new ZoomPanModifierExtension { ReceiveHandledEvents = true, ClipModeX = ClipMode.None, ExecuteOn = ExecuteOn.MouseLeftButton, IsEnabled = true, XyDirection = XyDirection.YDirection, ZoomExtentsY = true }; LegendModifier = new LegendModifier { GetLegendDataFor = SourceMode.AllSeries }; MouseWheelModifier = new MouseWheelZoomModifier { ReceiveHandledEvents = true, XyDirection = XyDirection.YDirection }; ZoomModifier = new ZoomExtentsModifier { ReceiveHandledEvents = true, XyDirection = XyDirection.YDirection }; TooltipModifierObject = new TooltipModifier { UseInterpolation = true }; TooltipModifierObject.TooltipLabelTemplate = GetTooltipLabelTemplate(); ChartModifier.ChildModifiers.Add(SeriesModifier); ChartModifier.ChildModifiers.Add(ScaleModifier); ChartModifier.ChildModifiers.Add(ZoomPanModifier); ChartModifier.ChildModifiers.Add(LegendModifier); ChartModifier.ChildModifiers.Add(MouseWheelModifier); ChartModifier.ChildModifiers.Add(ZoomModifier); ChartModifier.ChildModifiers.Add(TooltipModifierObject); ChartModifier.ChildModifiers.Add(ExtendedTooltipModifier); }
private void InitChart(SciChartSurface chart) { // Create a numeric X axis var xAxis = new NumericAxis(this) { AxisTitle = "Number of Samples (per Series)" }; // Create a numeric Y axis var yAxis = new NumericAxis(this) { AxisTitle = "Value", VisibleRange = new DoubleRange(-1, 1) }; // Create a secondary numeric Y Axis var secondaryYAxis = new NumericAxis(this) { AxisTitle = "Secondary", AxisId = "SecondaryAxis", AxisAlignment = AxisAlignment.Left, VisibleRange = new DoubleRange(-2, 2) }; // Create interactivity modifiers var pinchZoomModifier = new PinchZoomModifier(); pinchZoomModifier.SetReceiveHandledEvents(true); var zoomPanModifier = new ZoomPanModifier(); zoomPanModifier.SetReceiveHandledEvents(true); var zoomExtentsModifier = new ZoomExtentsModifier(); zoomExtentsModifier.SetReceiveHandledEvents(true); // Create RolloverModifier to show tooltips var rolloverModifier = new RolloverModifier(); rolloverModifier.SetReceiveHandledEvents(true); var yAxisDragModifier = new YAxisDragModifier(); yAxisDragModifier.SetReceiveHandledEvents(true); // Create and configure legend var legendModifier = new LegendModifier(this); legendModifier.SetLegendPosition(GravityFlags.Bottom | GravityFlags.CenterHorizontal, 10); legendModifier.SetOrientation(Orientation.Horizontal); var modifiers = new ModifierGroup(pinchZoomModifier, zoomPanModifier, zoomExtentsModifier, rolloverModifier, legendModifier, yAxisDragModifier); modifiers.SetReceiveHandledEvents(true); modifiers.MotionEventGroup = "SharedEvents"; // Add xAxis to the XAxes collection of the chart chart.XAxes.Add(xAxis); // Add yAxis to the YAxes collection of the chart chart.YAxes.Add(yAxis); // Add secondaryYAxis to the YAxes collection of the chart chart.YAxes.Add(secondaryYAxis); // Add the interactions to the ChartModifiers collection of the chart chart.ChartModifiers.Add(modifiers); }