SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and iOS Chart & Android Chart Components

0 votes
0 answers
4 views

I’m able to turn the SciChartOverview control so that it appears vertical and am able to get the grips to flow vertically as well but whenever the data is flowing, it still flows horizontally. How do I get it to flow vertically? See attached image for what it currently does.

0 votes
0 answers
7 views

Few questions. First on a normal scichartsurface you have option to turn debuging to the console on. I do not see that option for the donut surface. Is there another way? Also if you have donutsegmentviewmodels and all values are 0 it throws an exception in the application. Is this expected behavior? I’d think the default behavior would just be to not render?

  • John asked 4 hours ago
0 votes
14 views

We currently have up to 4 charts that are stacked vertically and the data flows horizontally. However, we need to reverse it so that they are stacked horizontally and the data flows vertically. We currently have a grid setup for the charts to be set to but I can’t seem to figure out how to reset the Grid.Row and Grid.Column of each SciChartSurface at runtime.

Example:
Horizontally, this is how it looks…

<s:SciChartSurface x:Name="sciChartSurface1" Grid.Row="0" Grid.Column="1">

Vertically, it needs to be this…

<s:SciChartSurface x:Name="sciChartSurface1" Grid.Row="1" Grid.Column="0">

Is this possible to do at runtime/from the backend code?

0 votes
14 views

Two questions. First how do I draw an axis label for every column in a column chart. See attached pic. Also the first axis label is correctly positioned under the column chart but subsequent ones are off to the left quite a bit. Not sure how to fix either. Here is xaml to rotate the axis lablel

<Style x:Key="SessionBreakDownByHourColumnGraphXAxisLabelStyle" TargetType="sc:DefaultTickLabel">
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <RotateTransform Angle="45" />
        </Setter.Value>
    </Setter>
</Style>

UPDATE: Setting autoticks to false shows all axis labels but still off center. Adding new photo.
UPDATE: So changing xaml to below and adding a few to visible range on xaxis seems to solve the issue. Still unsure why i have to modify the visible range slightly.

<Style x:Key="SessionBreakDownByHourColumnGraphXAxisLabelStyle" TargetType="sc:DefaultTickLabel">
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <RotateTransform Angle="45"/>
        </Setter.Value>
    </Setter>
    <Setter Property="HorizontalAnchorPoint" Value="Left"/>
    <Setter Property="VerticalAnchorPoint" Value="Bottom"/>
</Style>

Final Xaml that solved for me

<Style x:Key="SessionBreakDownByHourColumnGraphXAxisLabelStyle" TargetType="sc:DefaultTickLabel">
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <RotateTransform Angle="45"/>
        </Setter.Value>
    </Setter>
    <Setter Property="HorizontalAnchorPoint" Value="Left"/>
    <Setter Property="VerticalAnchorPoint" Value="Bottom"/>
    <Setter Property="FontSize" Value="9"/>
    <Setter Property="FontWeight" Value="Bold"/>
    <Setter Property="Margin" Value="-5,0,0,0"></Setter>
    <Setter Property="Foreground" Value="{DynamicResource AccentBaseColorBrush}"/>
</Style>
  • John asked 1 day ago
  • last active 23 hours ago
0 votes
35 views

When the GrowBy property on NumericAxis3D is specified, a tooltip modifier on the same 3D chart shows over data points that are not those under the mouse pointer.

To replicate the issue:

  1. Clone the examples project from GitHub and open the SciChart2D3D.Examples solution.

  2. In UniformColumn3D.xaml change the XAxis, YAxis, ZAxis and ChartModifier elements to the following, from line 101 onwards:

    <s3D:SciChart3DSurface.XAxis>
        <s3D:NumericAxis3D AutoRange="Always"  />
    </s3D:SciChart3DSurface.XAxis>
    
    <s3D:SciChart3DSurface.YAxis>
        <s3D:NumericAxis3D AutoRange="Always" />
    </s3D:SciChart3DSurface.YAxis>
    
    <s3D:SciChart3DSurface.ZAxis>
        <s3D:NumericAxis3D AutoRange="Always" />
    </s3D:SciChart3DSurface.ZAxis>
    
    <s3D:SciChart3DSurface.ChartModifier>
        <s3D:TooltipModifier3D HoverDelay="150" CrosshairMode="Lines" ShowTooltipOn="MouseOver" />
    </s3D:SciChart3DSurface.ChartModifier>
    
  3. Run the application and observe that the 3D Charts -> Basic Chart Types -> Uniform Column 3D chart shows a chart with correct tooltips appearing when the mouse is hovered over columns on the chart.

  4. Add GrowBy=”0.1, 0.1″ to each axis property as follows:

    <s3D:SciChart3DSurface.XAxis>
        <s3D:NumericAxis3D AutoRange="Always" GrowBy="0.1,0.1"  />
    </s3D:SciChart3DSurface.XAxis>
    
    <s3D:SciChart3DSurface.YAxis>
        <s3D:NumericAxis3D AutoRange="Always" GrowBy="0.1,0.1" />
    </s3D:SciChart3DSurface.YAxis>
    
    <s3D:SciChart3DSurface.ZAxis>
        <s3D:NumericAxis3D AutoRange="Always"  GrowBy="0.1,0.1"/>
    </s3D:SciChart3DSurface.ZAxis>
    
  5. Run the application again and hover the mouse over the same chart. Note that the tooltop is now shown for a data point different to whichever one the mouse is over at the time, which is incorrect.

0 votes
44 views

I am trying to produce a ScatterChart that has point markers colors that are dependent on a list of color datapoints. I have created a custom IPointMarkerPaletteProvider that has the PointPaletteinfo function defined as:

    public PointPaletteInfo? OverridePointMarker(IRenderableSeries series, int index, IPointMetadata metadata)
    {

        return new PointPaletteInfo()
        {
            Fill = ((BondMetaData)metadata).Color,
            Stroke = ((BondMetaData)metadata).Color,

        };
    }

It works, however, the panning feature becomes extremely laggy as though it is resetting the color of every point everytime the chart is moved.

What should I do to improve the performance?

0 votes
50 views

I created a CustomRenderableSeries to put TextAnnotations on surface for every drawn point.

I discovered that Draw method is not called when no points are to be drawn in the visible range, so i can’t do any cleanup of the annotations i created in a previous pass.

Is there a way to force Draw method to be called anyway upon surface redraw (for example when zooming)?

Thank you

0 votes
0 answers
39 views

My issue is that the Pointmarker does not draw when I attempt to implement a custom renderable series view model. I’ve isolated it to the fact I am subclassing because the same code will draw if I replace my custom subclass with the base class.

I subclassed XyScatterRenderableSeriesViewModel like so:

public class CustomSeriesViewModel : XyScatterRenderableSeriesViewModel
{
    public CustomSeriesViewModel ()
    : base()
    {
    }
}

It is created like this:

return new CustomSeriesViewModel ()
        {
            // Note: the Pointmarker is created in the Xaml. See styles.
            StyleKey = "CustomSeriesStyle",
            DataSeries = dataSeries,
            IsSelected = true,
        };

And added into a list of type List IRenderableSeriesViewModel

If I replace the line new CustomSeriesViewModel () with new XyScatterRenderableSeriesViewModel(), the Pointmarker is drawn successfully. This is confusing to me, as there’s no other code in the subclass than the constructor, so I would expect it to be substitutable.

The style is responsible for defining the Pointmarker and looks like this:

 <Style x:Key="CustomSeriesStyle" TargetType="s:BaseRenderableSeries" >
    <Setter Property="s:TooltipModifier.TooltipTemplate" Value="{StaticResource CustomTooltipTemplate}" />
    <Setter Property="s:TooltipModifier.TooltipContainerStyle" Value="{StaticResource CustomTooltipStyle}" />
    <Setter Property="PointMarker">
        <Setter.Value>
            <s:SpritePointMarker>
                <s:SpritePointMarker.PointMarkerTemplate>
                    <ControlTemplate>
                        <Grid>
                            <Ellipse Width="13" Height="13" Fill="White"/>
                            <Ellipse Width="9" Height="9" Fill="{StaticResource CustomBrush}"/>
                        </Grid>
                    </ControlTemplate>
                </s:SpritePointMarker.PointMarkerTemplate>
            </s:SpritePointMarker>
        </Setter.Value>
    </Setter>
</Style>
  • John Chow asked 1 week ago
  • last active 1 week ago
0 votes
48 views

Good morning,

i need to draw a bitmap (specifically a RenderTargetBitmap object) to a surface during a Draw method of a CustomRenderableSeries, so using the IRenderContext2D argument.

I see there is a DrawTexture method but can’t find any example on this.
Can you provide a snippet to show the correct use of this method?

Thank you.

WPF project
.Net framework 4.6.1
Schichart 5.5.0.12225

0 votes
58 views

Hello,

Are the “Enable Zoom” and “Enable Pan” checkboxes dead?
Checking either did not work.

Thank you.

1 vote
65 views

I’ve just downloaded the new v6 SDK and tried to use the tooltip feature both in my existing application and in the examples suite, and in both cases tooltips do not appear at all. The example suite for both .NET Framework and .NET Core crashes and the solution export feature produces a solution that does not build in Visual Studio.

The first example, 3D Charts -> Tooltips and Hit Test 3D Charts -> Series Custom Tooltips 3D Chart, crashes the example suite if I hover over a data point. The application closes with no error message.

The second example, 3D Charts -> Tooltips and Hit Test 3D Charts -> Series Tooltips 3D Chart, does not show any tooltips at all, in contrast to the same example from the v5 example suite. The application in this case does not crash, though.

In my own application the tooltip does not show whereas with the previous version of SciChart it did. I cannot see an exception raised.

0 votes
73 views

Hi,
I need to append data to uniformHeatmapDataseries on each interval. So ,X Range keeps increasing ..How to append data to uniformHeatmapDataseries ?

  • deepak b asked 2 weeks ago
  • last active 2 weeks ago
0 votes
91 views

Hello, I retrieved the code of the ToolBar directly on the github, except that when I try to use it, my code compiles but the toolbar does not appear.

Yet the name space is well referenced, and I have no error on the XAML designer page.

Would anyone have been in the same situation before?

1 vote
83 views

Hello,

I bought a license and when I try to deploy my application it seems to be crashing. The application will build and run fine in Visual Studio. I have tried removing the scichart portions from my app and deploying and it runs fine then. I have tried following the tutorial for deployment located here:
https://www.scichart.com/activating-scichart/

but have not had any luck. Would anyone be able to offer any assistance with deploying with scichart?

Thank you for your time and assistance with this,
Max

  • Max Kelly asked 4 weeks ago
  • last active 3 weeks ago
0 votes
112 views

Dear SciChart Team:

I have two questions to ask:

Question 1

I can use renderableSeries.PointMarker, like this:

renderableSeries.PointMarker = new EllipsePointMarker()
                            {
                                Fill = Colors.LightSteelBlue,
                                Stroke = Colors.White,
                                StrokeThickness = POINTMARKER_STROKETHICKNESS,
                                Width = POINTMARKER_WIDTH,
                                Height = POINTMARKER_HEIGHT,
                            };

But I only want to set some points to PointMarker, not all points. How can i do?

Question 2

I want to drag data-points, and I have referenced this example: Custom ChartModifiers – Select and drag a point
But I only want to move the specified data points, not all the points. What should I do?

  • Johnny Yeh asked 4 weeks ago
  • last active 3 weeks ago
0 votes
0 answers
86 views

We are using HorizontalLineAnnotation and VerticalLineAnnotations on a chart. We have subclassed these classes so that we could use our own AnnotationLabels that display text instead of the value of the line position.

something like this:

`
<s:HorizontalLineAnnotation.Resources>

</s:HorizontalLineAnnotation.Resources>

<s:HorizontalLineAnnotation.Stroke>
    <SolidColorBrush Color="{Binding Color}"/>
</s:HorizontalLineAnnotation.Stroke>

<s:HorizontalLineAnnotation.ToolTip>
    <ToolTip Content="{Binding Label}"  
             Visibility="{Binding Label, Converter={StaticResource EmptyStringToVisibilityCollapsedConverter}}"/>
</s:HorizontalLineAnnotation.ToolTip>

<s:AnnotationLabel x:Name="_annotationLabel" LabelPlacement="Axis" BorderThickness="0" Text="{Binding DataContext.Label}" 
Background="Transparent">
    <s:AnnotationLabel.Foreground>
        <SolidColorBrush Color="{Binding DataContext.Color}"/>
    </s:AnnotationLabel.Foreground>
</s:AnnotationLabel>

`

Now we want to use our own custom control similar to a TextBlock as the axis label. Is it possible to template the AnnotationLabel or maybe another way to accomplish this? The custom control we have is used to highlight part of the text in the textblock (using Runs) for search highlighting so even if we have to do it a different way, that would acceptable.

What I would like to do:
.
.
.

<s:AnnotationLabel x:Name="_annotationLabel" LabelPlacement="Axis" BorderThickness="0" Text="{Binding DataContext.Label}" Background="Transparent">
    <s:AnnotationLabel.Foreground>
        <SolidColorBrush Color="{Binding DataContext.Color}"/>
    </s:AnnotationLabel.Foreground>
    <s:AnnotationLabel.Style>
        <Style TargetType="s:AnnotationLabel">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="s:AnnotationLabel">
                        <controls:HighlightingTextBlock Text="{TemplateBinding Text}" HighlightedText="{Binding 
                                                                                                                    DataContext.HighlightedLabelText}"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </s:AnnotationLabel.Style>
</s:AnnotationLabel>
0 votes
142 views

Hello 🙂

We have a chart setup like in the Custom Overview Control example. The RenderableSeries property of both charts is bound to the same ObservableCollection of IRenderableSeries. So if I change a property of the series like the thickness or point marker the change is visible in both charts accordingly.
Is there an easy way to accomplish that the series is drawn only with default thickness and without a point marker in the overview chart but with a point geometry and thickness in the main chart ?

Thank you.

0 votes
123 views

Hi all,

I’m currently evaluating SciChart for use within our company. While trying to preserve our current chart look and feel, I noticed that the border settings for the GridLinesPanelStyle do not seem to be working.
I was just following the theming and styling tutorial, where a border is added to the GridLinesPanel and is clearly visible in the screenshot of the theming and styling demo in the tutorial. After noticing this, I opened up the demo application myself and noticed that also in the demo the border is not showing up.

Is this a known issue? And if so, what is a possible work-around for this?

Thanks in advance,
CĂ©dric

0 votes
154 views

We have annotations placed based on mouseposition. To snap the annotation to the position of the datapoints, we use IDataSeries.FindClosestPoint(..) method to step to the nearest point, then applying it to the “X1”-property of the belonging annotation. This works well for most of the Series, but it fails for

XyDataSeries<int, double>

error:

InvalidCastException Specified cast is not valid.

Is this a known issue, any work-arounds for this ?

  • Steffen asked 1 month ago
  • last active 1 month ago
0 votes
124 views

We have lots of use cases where livedata is appended to exisiting series. The data has gone through algorithms, is not time-based and so is unsorted. Better said, it’s scientific data, for e.g. Bode-, Nyquist diagrams
Can we make the SeriesValueModifier style so it places the latest value also at the x-position ? Currently we have CustomAnnotations for this, which seems a clumsy work-around.

  • Steffen asked 1 month ago
  • last active 1 month ago
1 vote
164 views

I am trying to modify the 3D Charts > Tooltips and Hit Test 3D Charts > Series Tooltips 3D Chart example to change the colour of the tooltip crosshairs to red. By crosshairs I mean the green lines in the image attached.

Green Crosshairs

I modified SeriesTooltips3DChart.xaml by adding:

    <UserControl.Resources>
        <Style x:Key="MyCrosshairOverlayStyle" TargetType="Line">
            <Setter Property="Stroke" Value="Red" />
            <Setter Property="StrokeThickness" Value="2" />
        </Style>
        <Style x:Key="MyCrosshairProjectionStyle" TargetType="t3D:CrosshairLines">
            <Setter Property="CrosshairOverlayStyle" Value="{StaticResource MyCrosshairOverlayStyle}" />
            <Setter Property="ProjectionMode" Value="Crosshair" />
        </Style>
    </UserControl.Resources>

and modifying the TooltipModifier3D element:

<t3D:TooltipModifier3D CrosshairMode="Lines" CrosshairPlanesFill="#33FF6600" CrosshairProjectionStyle="{StaticResource MyCrosshairProjectionStyle}" />

I expected this to apply the coloured lines but it did not. What have I misunderstood?

0 votes
125 views

Hi,

I have the BoxPlotDataSeries chart with x-axis range from 0 to 6 and y-axis range from 0 to 100. I found that box width is too large and all the boxes occupied the whole chart. I would like to reduce the box width size. I have tried with DataPointWidth but its not working. Please let me know can we change the size of the box plot chart.

Thanks,
Senthil

0 votes
123 views

Is there any way to reduce the number of data points rendered on graph based on user’s screen resolution?

Thanks.

0 votes
143 views

Hello 🙂

Is there a performance difference between LineRenderableSeriesViewModel and FastLineRenderableSeries ?
So is it better to use ObservableCollection<IRenderableSeries> RenderableSeries = new ObservableCollection<IRenderableSeries>();
RenderableSeries.add(new FastLineRenderableSeries());and bind in XAML RenderableSeries="{Binding RenderableSeries}" or to use ObservableCollection<IRenderableSeriesViewModel> RenderableSeriesViewModel = new ObservableCollection<IRenderableSeriesViewModel>();
RenderableSeriesViewModel.add(new LineRenderableSeriesViewModel()); and bind in XAML RenderableSeries="{s:SeriesBinding RenderableSeriesViewModels}" ? Or is there no difference ?

Thank you

0 votes
128 views

Hello,

I currently have a line chart that colors individual segments of the line different colors using the PaletteProvider and point metadata. I’ve been attempting to add an EllipsePointMarker to the point, and would like to have the fill be the same color as the line itself.

Is there a simple way to set the fill based on the point metadata as well?

Thanks in advance.

Aaron

0 votes
126 views

My X Axis is a TimeSpanAxisViewModel but I’d like to be able to toggle between TimeSpan and DateTime to show elapsed time versus actual time.

For example, the axis could read 00:00:00 to 01:30:00 with TimeSpan but then I could toggle the labels to read 3:45PM to 5:15PM, if the starting time was 3:45PM.

Is there a way to provide a starting DateTime and have it used on the axis labels in place of TimeSpan values?

Thanks!

  • Greg Knox asked 1 month ago
  • last active 1 month ago
0 votes
120 views

I have a custom modifier class that extends RubberBandXyZoomModifier and overrides OnModifierMouseUp and OnModifierDoubleClick. When the user mouses up after zooming, is there a property or best practice of determining if the chart is zoomed in or not?

I’m wanting to disable/enable certain features based on the chart being zoomed in or not.

Below is my custom class…

public class CustomRubberBandXyZoomModifier : RubberBandXyZoomModifier
    {
        public override void OnModifierMouseUp(ModifierMouseArgs e)
        {
            Console.WriteLine("MOUSE UP");

            // Determine if the chart is zoomed in or not

            base.OnModifierMouseUp(e);
        }

        public override void OnModifierDoubleClick(ModifierMouseArgs e)
        {
            base.OnModifierDoubleClick(e);

            Console.WriteLine("DOUBLE CLICK");

            // Determine if the chart is zoomed in or not

            ParentSurface.ZoomExtents();
        }
    }
  • Greg Knox asked 1 month ago
  • last active 1 month ago
0 votes
126 views

Hi,

We are integrating Sci chart 2D (With multi color data points based on conditions – EXtremeScatterRenderableSeries) for our application.

It worked fine. However, we are not able to see the Legends with the colored range. (Example: 0 to 50: Blue. 51 to 100 Green …Etc.).

Please find the attached file and suggest the solution for this.

Thanks in advance.

0 votes
242 views

A runtime error is thrown when trying to pan a line render series with an x-Axis of type CategoryDateTimeAxis:

System.AccessViolationException
HResult=0x80004003
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=
StackTrace:

The output in VS 2019 produced the following:

An unhandled exception of type ‘System.AccessViolationException’ occurred in SciChart.Data.dll
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

I use the new 6.x beta version with the new render engine.

No other stack trace is available, it only points to [External Code]

Any idea what might be going on?

Rendering with an x-Axis of type DateTime works just fine, the runtime error only pops up after I changed to CategoryDateTimeAxis.

  • bbmat asked 1 month ago
  • last active 1 week ago
0 votes
145 views

I have several series on a surface and currently use the Rollovermodifier. It highlights the datapoint on each series that intersects with the current vertical line of the RolloverModifier. However, I don’t seem to be able to display the corresponding y-values on the Y-Axis. How can I accomplish such? Is there any easy way to show the y-value of each series on the y-Axis that intersects with the vertical line of the Rollovermodifier?

  • bbmat asked 1 month ago
  • last active 1 month ago
0 votes
148 views

Just purchased and am trying to setup in application and i still get you have zero days left of trial. Attaching pictures. followed instructions here https://www.scichart.com/activating-scichart/

Update used the licensing wizard to activate as first time i activated online. After using licensing wizard it works. but what happens when i deploy application since i had added to my code the set license key?

  • John asked 1 month ago
  • last active 1 month ago
0 votes
128 views

I would like to add an image or icon to the bottom of the Vertical Line Annotation, where the AnnotationLabel is.

Is there a way to do this using the StyleKey?

I have a lot of Vertical Line Annotations and I am trying to make some of them look different other than just color. I need ways to show different vertical line annotations and this could be one of them.

0 votes
157 views

Hi,
I have to display an image on a SciChartSurface using direct draw. I have seen on the forum that it can be done using ITexture2D and DrawTexture by i can’t achieve it.
Could you provide a small piece of code for that ?

Best regards,
Valentin

0 votes
131 views

Related to: https://www.scichart.com/questions/wpf/exporttofile-exception-the-provided-dependencyobject-is-not-a-context-for-this-freezable

I got no reply…

I’m able to reproduce the issue in the thread above, or at least a similar issue with version 5.4

What my code has is a “Start/Stop” button. When “Start” is pressed, the Axes are cleared and re-initialized.
If just using Start / Stop then it works, but if I export the chart into an image (a PNG in that matter), and after few seconds I click on the “Start”, then few seconds later, the software crash on the exception mentioned above.

From what I’ve been able to debug, the Export to image create a new chart control with all the bindings, and renders it to an image.
When I click on start, then the Axis (in this case, I see that the Y Axes are the ones that cause it) are cleared and created in my view model, and therefore it also affects the chart.
The binding of the chart that was created for the rendering is probably not cleared, so it gets the change event after some time, and Arrange is being called.

I see that ArrangeOverride on the AxisPanel is called, and _axisTitle,Arrange is called at this point the application crashes.

Please fix it.

Btw, this is the stack trace:

Exception Info: System.ArgumentException
at System.Windows.Freezable.RemoveContextInformation(System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.Freezable.RemoveInheritanceContext(System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.DependencyObject.RemoveSelfAsInheritanceContext(System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.Freezable.OnFreezablePropertyChanged(System.Windows.DependencyObject, System.Windows.DependencyObject, System.Windows.DependencyProperty)
at System.Windows.Media.RenderData.PropagateChangedHandler(System.EventHandler, Boolean)
at System.Windows.UIElement.RenderClose(System.Windows.Media.IDrawingContent)
at System.Windows.Media.RenderDataDrawingContext.DisposeCore()
at System.Windows.Media.DrawingContext.System.IDisposable.Dispose()
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at MS.Internal.Helper.ArrangeElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
at System.Windows.Controls.ContentPresenter.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at MS.Internal.Helper.ArrangeElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
at System.Windows.Controls.ContentPresenter.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at SciChart.Charting.Themes.AxisPanel.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Grid.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.StackPanel.StackArrangeHelper(System.Windows.Controls.IStackMeasure, System.Windows.Controls.IStackMeasureScrollData, System.Windows.Size)
at System.Windows.Controls.StackPanel.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Border.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.StackPanel.StackArrangeHelper(System.Windows.Controls.IStackMeasure, System.Windows.Controls.IStackMeasureScrollData, System.Windows.Size)
at System.Windows.Controls.StackPanel.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at MS.Internal.Helper.ArrangeElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)
at System.Windows.Controls.ItemsPresenter.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Border.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Grid.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Border.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.Controls.Control.ArrangeOverride(System.Windows.Size)
at System.Windows.FrameworkElement.ArrangeCore(System.Windows.Rect)
at System.Windows.UIElement.Arrange(System.Windows.Rect)
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.ContextLayoutManager.UpdateLayoutCallback(System.Object)
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(System.Object)
at System.Windows.Media.MediaContext.RenderMessageHandler(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at Unitronics.Shell.UI.App.Main()

0 votes
185 views

Hi,
I would like to draw a polygon over a heatMap using an inherited class of UniformHeatMapDataSeries.
An example using FastHeatMapRenderableSeries was described here : https://www.scichart.com/questions/wpf/drawing-a-polygon-upon-a-heatmap-chart ,but it is now deprecated since SciCharts V5.

Instead of that, i tried to declare an inherited class of CustomRenderableSeries as shown here :

public class PolygonRenderableSeries : CustomRenderableSeries {
protected override void Draw(IRenderContext2D renderContext, IRenderPassData renderPassData)
{
base.Draw(renderContext, renderPassData);
}
}

What i need now is to pass a List of Polygons to this class in order to draw them directly. I know how to draw a polygon, but i don’t know how to override the renderPassData for adding polygons to it.

Could you help me about that ?
Best regards,

0 votes
146 views

Does SciChart provide a built-in way to display multiple data series on the same 3D chart where the series do not share a common unit or order of magnitude? On a 2D chart I would use a second y-axis via the YAxes collection but I can’t find an equivalent property on the SciChart3DSurface class.

0 votes
0 answers
142 views

Hello, I am using the Cross CursorModifier with axis labels and tool tips on a FastCandlestickRenderableSeries only. I have been using the CursorModifier:SnappingMode=”CrosshairToSeries” however I would like to only have the X axis of the CursorModifier snap to the nearest X data point of the series. This way the Y axis of the CursorModifier is still free to view price and hold a reference for where the Tooltip should be displayed. Any direction to the proper documentation for this functionality would be appreciated.

Thank you,

0 votes
148 views

How can I bind to pointmedata ?

 <s:FastLineRenderableSeries  YAxisId="Ch0"
                                        DataSeries="{Binding DataSeries[Marker]}" Stroke="Transparent"
                                        AntiAliasing="False" ResamplingMode="None"  >
                <s:FastLineRenderableSeries.PointMarker>
                    <s:SpritePointMarker>
                        <s:SpritePointMarker.PointMarkerTemplate>
                            <ControlTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Test" Foreground="White"/>
                                    <s:CustomAnnotation >
                                        <s:CustomAnnotation.Style>
                                            <Style TargetType="s:CustomAnnotation">
                                                <Setter Property="Content">
                                                    <Setter.Value>
                                                        <Border x:Name="Border" BorderBrush="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=s:FastLineRenderableSeries},Path=MarkerAnnotationViewModel.BorderBrush}" BorderThickness="1" Width="11"
                        Height="11" Margin="-5,-5,0,0" CornerRadius="1"
                        Background="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=s:FastLineRenderableSeries},Path= PointMetadata.MarkerAnnotationViewModel.Background}">
                                                            <Border.Style>
                                                                <Style TargetType="Border">
                                                                    <Style.Triggers>
                                                                        <DataTrigger Binding="{Binding CanChange, UpdateSourceTrigger=PropertyChanged}"
                                             Value="True">
                                                                            <DataTrigger.EnterActions>
                                                                                <BeginStoryboard>
                                                                                    <Storyboard>
                                                                                        <DoubleAnimation Storyboard.TargetProperty="(Border.Opacity)"
                                                                 From="1" To="0" Duration="0:0:0.75"
                                                                 AutoReverse="True" RepeatBehavior="5x" />
                                                                                    </Storyboard>
                                                                                </BeginStoryboard>
                                                                            </DataTrigger.EnterActions>
                                                                            <DataTrigger.ExitActions>
                                                                                <BeginStoryboard>
                                                                                    <Storyboard>
                                                                                        <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1.0"
                                                                 Duration="0:0:0" />
                                                                                    </Storyboard>
                                                                                </BeginStoryboard>
                                                                            </DataTrigger.ExitActions>
                                                                        </DataTrigger>
                                                                    </Style.Triggers>
                                                                </Style>
                                                            </Border.Style>
                                                        </Border>
                                                    </Setter.Value>
                                                </Setter>
                                            </Style>
                                        </s:CustomAnnotation.Style>
                                    </s:CustomAnnotation>
                                    <TextBlock Text="Test2" Foreground="White"></TextBlock>
                                </StackPanel>
                            </ControlTemplate>
                        </s:SpritePointMarker.PointMarkerTemplate>
                    </s:SpritePointMarker>
                </s:FastLineRenderableSeries.PointMarker>
            </s:FastLineRenderableSeries>
0 votes
156 views

Hi, i’m developing an app in WPF and i found that it crashes when i’m dereferencing the user control where my chart lives in and have 1 or more points selected by code in one chart when the other one is not visible.

i would be very apreciated if someone could tell me a hint of where i have to look for the solution or what do this methods do or touch.

more data about the chart:

  • I have 2 fastlinerenderable series each with 2 Yaxis for itselves and 2 shared XAxis.
  • I also have a modified listbox which is have it’s sincronization synced to the chart.
  • have a modifiergroup to pan,zoom and select.

this is my Selectionmodifier:

<scicharts:DataPointSelectionModifier
                        Name="ChartSelection"
                        SelectionFill="#B1B5B2B2" 
                        XAxisId="{Binding XAxisType, NotifyOnTargetUpdated=True}"
                        TargetUpdated="ChartSelection_TargetUpdated"
                        SelectionStroke="#009E9C9C"
                        IsEnabled="{Binding SelectionMode}" >

I think that this is the axis that breaks my program but it needs it to not crash when i select.

this is my stacktrace:

An unhandled exception of type ‘System.NullReferenceException’ occurred in SciChart.Charting.dll

en SciChart.Charting.ChartModifiers.DataPointSelectionModifier.DeselectAllPointMarkers()
en SciChart.Charting.ChartModifiers.DataPointSelectionModifier.OnXAxisIdDependencyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

I tried to make a program that could replicate the error but i couldn’t.

thanks in advance.

0 votes
171 views

Hi,

I’m trying to add two column series with a different number of data points with the same width per column. There is a suggested solution here:

https://www.scichart.com/questions/wpf/constant-sized-column-bars

but I’m doing it from ViewModel.

So, if I understand it right, I can override GetColumnWidth() in FastColumnRenderableSeries in the new class ConstantColumnRenderableSeries, but how can I add ConstantColumnRenderableSeriesViewModel (overriding ColumnRenderableSeriesViewModel), so that once I add an instance of this newly created class ConstantColumnRenderableSeriesViewModel into RenderableSeries it will add ConstantColumnRenderableSeries to chart and render it?

Thanks in advance!

1 vote
177 views

Hi SciChart Team,
Is it possible to turn on anti aliasing for the major grid lines in 3D Surface?
The rendered lines in Chart look good, but the major grid lines look like they are built from the small strokes.

0 votes
174 views

VerticalLineAnnotation has

public event EventHandler<AnnotationDragDeltaEventArgs> DragDelta

It comes with an EventArgs. https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.Annotations.VerticalLineAnnotation_members.html

VerticalLineAnnotation also has

public ICommand DragDeltaCommand {get; set;}

How can I pass AnnotationDragDeltaEventArgs into DragDeltaCommand ?

Thanks.

  • Hao Zeng asked 2 months ago
  • last active 2 months ago
0 votes
173 views

I see documentation that you can create a pie chart without mvvm and use piechartsegmentitem. It doesn’t appear the same can be done with a wpf chart. Is that correct? Also can animation be changed on wpf donut chart? Thanks.

  • John asked 2 months ago
  • last active 2 months ago
0 votes
190 views

Hi

Is it possible to control a FastLineRenderableSeries with PointMarkers so I can toggle between the following states:

  • Line and points (PointMarker set)
  • Line only (PointMarker not set)
  • Points only ??

How do I get the Points only mode without replacing the series with a XyScatterRenderableSeries?

/Flemming

0 votes
212 views

Hello is there way to update points in XyDataSeries without Garbage Collector call? Here is my code:

public void RefreshSignal(float[] xData, float[] yData)
{
        if (_series == null)
        {
             _series = new XyDataSeries<float, float>();
            _series.Append(xData, yData);
        }

         for (int i = 0; i < xData.Length; i++)
         {
               _series.Update(xData[i], yData[i]);
         }
}

I may use _series.YValues[i], but then UI will not update.

Main task for me fast update all 25k points in series each 30ms without GC calls.

0 votes
189 views

Chart not honoring RubberBandFill in custom theme. I have below custom them and it doesn’t honor color but if I set manually in xaml or code it works fine.

  • John asked 2 months ago
  • last active 2 months ago
0 votes
205 views

I’m rending a number of very small sparkline graphs that don’t need axis labels. As soon as I take the markup below and add DrawLabels=”False” to my Y Axis, I can no longer see any data. What am I missing here?

<s:SciChartSurface RenderableSeries="{s:SeriesBinding Chart.RenderableSeries}">
    <s:SciChartSurface.XAxis >
        <s:DateTimeAxis AutoRange="Always" DrawLabels="False" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" DrawMajorTicks="False" DrawMinorTicks="False" >
            </s:DateTimeAxis>
    </s:SciChartSurface.XAxis>

    <s:SciChartSurface.YAxis>
        <s:NumericAxis AutoRange="Always" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" DrawMajorTicks="False" DrawMinorTicks="False">
            <s:DoubleRange Min="0.1" Max="0.1"/>
        </s:NumericAxis>
    </s:SciChartSurface.YAxis>
</s:SciChartSurface>
0 votes
224 views

I’m putting together a fairly simply column chart but my columns aren’t appearing how I want them to.

Basically, I’m creating 20 columns for each chart (picture below) and I’m getting various widths (despite setting UseUniformWidth to true and using the same DataPointWidth) and the first column isn’t being shown. The top chart, for example, should be a repeating pattern of red, green, blue, and purple.

Column Charts

Here’s how I’m building the ColumnRenderableSeriesViewModel and adding it to the HighPressureRenderableSeries…

XyDataSeries<int, double> dataSeries = new XyDataSeries<int, double>() { SeriesName = $"{modbus.Name} - {channel.Name}" };

ColumnRenderableSeriesViewModel series = new ColumnRenderableSeriesViewModel()
{
    Stroke = channel.Color,
    DataPointWidth = .1,
    UseUniformWidth = true,
    XAxisId = "ChannelsId",
    YAxisId = "PressureId",
    Fill = channel.ColorBrush,
    DataSeries = dataSeries,
    ZeroLineY = 0.0
};

dataSeries.Append(x: channel.Index, y: channel.Value); // channel.Index goes from 0 - 19

HighPressureRenderableSeries.Add(series);

And here’s the XAML for the High Pressure chart…

<sci:SciChartSurface ChartTitle="High Pressure" RenderableSeries="{sci:SeriesBinding HighPressureRenderableSeries}">
    <sci:SciChartSurface.XAxis>
        <sci:NumericAxis AxisTitle="Channels" Id="ChannelsId" DrawMajorBands="False" />
    </sci:SciChartSurface.XAxis>

    <sci:SciChartSurface.YAxis>
        <sci:NumericAxis AxisTitle="Pressure" Id="PressureId" DrawMajorBands="False" VisibleRange="0,25" VisibleRangeLimit="0,25" />
    </sci:SciChartSurface.YAxis>

    <sci:SciChartSurface.ChartModifier>
        <sci:ModifierGroup>
            <sci:RubberBandXyZoomModifier />
            <sci:ZoomExtentsModifier />
        </sci:ModifierGroup>
    </sci:SciChartSurface.ChartModifier>
</sci:SciChartSurface>

Any tips or advice would be appreciated. I’m sure I’m just missing something simple.

  • Greg Knox asked 2 months ago
  • last active 2 months ago
Showing 1 - 50 of 2k results