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

0 votes
1k views

Hi
I am creating an real-time application that handles multiple series in one surface. The series number is variant from 2 to 10. I use “RenderableSeries” then bind it to ObservableCollection. But I can not update DataSeries during run time and it throw an error? is it possible at all?
Thanks

  • neda asked 1 year ago
  • last active 1 year ago
0 votes
3k views

Hi,
I’m prototyping an application with two visible data series and an individual Y-axis for each data series. See the enclosed image.
The Stroke color of each data series, the TickTextBrush and the BorderBrush of the y-axis are updated by normal data Binding through the MVVM pattern.
The problem is that I am not able to data bind the Stroke property of the MajorTickLineStyle for the individual Y-axis.
Do You know if there is a workaround for this through data binding?
The project is enclosed.

  • andreasrep asked 4 years ago
  • last active 4 years ago
0 votes
271 views

Hello dear SciChart team,

Our customer has a new security program that starts on Dlls that are copied into a directory during runtime. At the moment has the customer the problem that this security program starts on an AbtLicensingNative.dll. This DLL is in the following directory:
% USERPROFILE% \ AppData \ Local \ SciChart \ Dependencies \ v.6.2.1.13304 \ x64.

For this reason the following questions:
Is this DLL safe?
Why is the dll only copied at runtime? Is there another solution for this?

best regards
Silvester

0 votes
557 views

Hello guys,
I am trying to activate a developer licence for SciChart.Wpf on a new computer.
I followed the activation process and the wizard is indicating that the activation succeeded with the state ‘licensed updates expired’ (since the licence has been purchased more than 1 year ago).
I still have the message ‘Sorry! Your trial of SciChart has expired…’ on the graph in Debug mode.
Is there anything I missed? Does the developer licence should be deactivated from a previous computer in order to make it work on a new one?
Thanks for your answers.

1 vote
8k views

Hi guys,

I have a custom Modifier on my SciChart which will function by allowing a user to click and drag a symbol (an Ellipse, for argument’s sake) along the XAxis (just below the labels). Dragging this will move a verticle line drawn on the Modifier Surface to be positioned above the symbol. Bindings on where the symbol (and line) are located will be used in the VM for ends not relevant to this question 🙂

So, I can handle drawing the vertical line on the ModifierSurface just fine – but I cannot seem to add the Ellipse underneath the XAxis. I have increased the height of the XAxis so there is room for it, but it’s just the drawing that is painful.

Could I get a helping hand? 🙂

Thanks,
Miles

0 votes
4k views

Hi,

I have several chart panes that share a mouse group and a shared visual range (I inject the shared visual range of type IRange in the constructor of the pane view model). I then set the XAxis visual range to the shared visual range inside each pane view model. However, when I use either of the below approaches outside of the pane view model to adjust the min and max of shared visual range, the Xaxis.VisualRange of each pane does not reflect that change.

Approach A: _sharedVisualRange.Min = ….; _sharedVisualRange.Max = …
Approach B: _sharedVisualRange.SetMinMax(….)

Neither approach actually impacts the XAxis.VisualRange.Min/Max.

Initially when I created the XAxis in code I set its VisualRange equal to the shared visual range that was injected via constructor, like :

XAxis = new CategoryDateTimeAxis()
{
……
……
VisualRange = _sharedVisualRange,
…..
};

Please note that all the above refers to code in the view model. I bind the XAxis in the pane view model to the XAxis of the surface in xaml.

My entire synchronization heavily relies on the assumption of this working, but it does not.

  • bbmat asked 3 years ago
  • last active 3 years ago
0 votes
3k views

I want to create a chart with Fixed number of column series with uniform width. For example, X Asis visible range is 0-100 and i want to have 5 column series, 1st column range is 0-20, 2nd columns is 20-40, 3rd column is 40-60 ,4th coulmn is 60-80 and 5th column is 80-100. and there should not be space between columns.I have attached a screen shot of chart that i expected. Please let me know whether its possible?
Thanks

  • deepak b asked 2 years ago
  • last active 2 years ago
0 votes
0 answers
0 views
0 votes
3k views

Hi All,

I’ve got a class that derives from the DataPointSelectionModifier in order to access the OnValueChanged() functionality and everything is fine (Thank you Andrew).

However – When I have 2 series on the chart (scatter series) and 2 points are quite close together, a single selection of a point can result in the selection of two points. On playing around with it a bit I notice that a point can be selected when the mouse pointer is slightly outside the limits of the pointmarker (in this case a 10×10 EllipsePointMarker) so if you get 2 points only a few pixels apart it is possible to place the mouse between the two and get both points selected. You can also see the behaviour in the SciChart examples 2DCharts|Toltips and Hit Test| Pointmarkers Selection example if you play with the points in the top left corner.

The Question: Is there a way to reduce the area around the mouse pointer that a hit test is detected in? (e.g. 20 pixel radius down to say 5 pixel radius)

I’ve had a look at overriding GeometryHitTestResult HitTestCore but I don’t really know if this is even the right way to go. If somebody can confirm this is where I should be looking then I’ll find some time to persevere with it.

Thanks in advance
/Stuart

1 vote
5k views

Hi,

I need create a columnChart with multiple Column value.

If I create a datapoint with 0 in Y value I have a flat red line

{
    XyDataSeries<DateTime, double> Serie = new XyDataSeries<DateTime, double>();
    foreach (var point in Ohlcvs)
        Serie.Append(point.THE_DATE, (point.O < point.C) ? point.V : 0);
    var ser = new StackedColumnRenderableSeries
    {
        DataSeries = Serie,
        StackedGroupId = "VolumeId",
        FillBrush = ColorCode.StockUp,
        SeriesColor = ColorCode.StockUp.Color,
        DataPointWidth = 0.8
    };
    ChartVolume.RenderableSeries.Add(ser);
}
{
    XyDataSeries<DateTime, double> Serie = new XyDataSeries<DateTime, double>();
    foreach (var point in Ohlcvs)
        Serie.Append(point.THE_DATE, (point.O > point.C) ? point.V : 0);
    var ser = new StackedColumnRenderableSeries
    {
        DataSeries = Serie,
        StackedGroupId = "VolumeId",
        FillBrush = ColorCode.StockDown,
        SeriesColor = ColorCode.StockDown.Color,
        DataPointWidth = 0.8
    };
    ChartVolume.RenderableSeries.Add(ser);
}

when StackedColumnRenderableSeries is used with different number of datapoint in the each serie I have this bug

    {
        XyDataSeries<DateTime, double> Serie = new XyDataSeries<DateTime, double>();
        foreach (var point in Ohlcvs.Where(o=>o.O<o.C))
            Serie.Append(point.THE_DATE, point.V );
        var ser = new StackedColumnRenderableSeries
        {
            DataSeries = Serie,
            StackedGroupId = "VolumeId",
            FillBrush = ColorCode.StockUp,
            SeriesColor = ColorCode.StockUp.Color,
            DataPointWidth = 0.8
        };
        ChartVolume.RenderableSeries.Add(ser);
    }
    {
        XyDataSeries<DateTime, double> Serie = new XyDataSeries<DateTime, double>();
        foreach (var point in Ohlcvs.Where(o => o.O > o.C))
            Serie.Append(point.THE_DATE, point.V);
        var ser = new StackedColumnRenderableSeries
        {
            DataSeries = Serie,
            StackedGroupId = "VolumeId",
            FillBrush = ColorCode.StockDown,
            SeriesColor = ColorCode.StockDown.Color,
            DataPointWidth = 0.8
        };
        ChartVolume.RenderableSeries.Add(ser);
    }

In the real case , there are 8 series .
They can beings presented on the same point X or not .

Thanks

  • Sylvain60 asked 6 years ago
  • last active 6 years ago
0 votes
9k views

I am using the MVVM pattern.
I need the ability to create and style a variable number of line series in a chart.
In order to accomplish this I am binding the RenderableSeries to a collection in my view model.

&lt;SciChart:SciChartSurface 
  x:Name=&quot;historicalChart&quot;
  Grid.Row=&quot;1&quot; 
  Grid.Column=&quot;0&quot;
  telerik:RadDragAndDropManager.AllowDrop=&quot;True&quot;
  RenderableSeries=&quot;{Binding HistoricalRenderableSeries, Mode=TwoWay}&quot;
  DataSet=&quot;{Binding ChartData, Mode=TwoWay}&quot; SciChart:ThemeManager.Theme=&quot;ExpressionLight&quot;&gt;
&lt;/SciChart:SciChartSurface&gt;

And then I am setting the various styles like SeriesColor and StrokeThickness in my view model.
I am now trying to color the points on each line to match the color of the line using a control template.

<ControlTemplate x:Key="ChartShowPointTemplate">
<Ellipse Height="6" Width="6">
<Ellipse.Style>
<Style TargetType="{x:Type Ellipse}">
<Setter Property="Visibility" Value="Visible"/>
<!–<Setter Property="Fill" Value="Green"/>–>
<Setter Property="Fill" Value="{Binding Path=SeriesColor, Converter={StaticResource ColorToBrushConverter}, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type SciChart:FastLineRenderableSeries}}}"/>–>
</Style>
</Ellipse.Style>
</Ellipse>
</ControlTemplate>

But I get the following error:

System.Windows.Data Error: 4 : Cannot find source for binding with reference ‘RelativeSource FindAncestor, AncestorType=’Abt.Controls.SciChart.FastLineRenderableSeries’, AncestorLevel=’1”.
BindingExpression:Path=SeriesColor; DataItem=null; target element is ‘Ellipse’ (Name=”); target property is ‘Fill’ (type ‘Brush’)

I have tried many several options to try and get this work.
If I hard code to GREEN I do see green points on my line.

Any ideas?

0 votes
7k views

Hi,

I have a chart with two series drawn, you can see from the attached image that the series at the top runs from the start to the finish. However the series at the bottom does not as there is no data. Is it possible for the bottom line to be extended so that it does start from the beginning (Is this interpolation?)

0 votes
4k views

Hi,

How can I disable CTRL or SHIFT while mouse-wheel scrolling pan behavior in XDirection?
the user can move the Chart with CTRL or SHIFT while mouse-wheel scrolling, I want to disable this at all.

Thanks.

  • Lio Ols asked 4 years ago
  • last active 4 years ago
0 votes
5k views

We implemented a custom TooltipModifier. We want to fade out the tooltip after a defined timespan if the mouse doesn’t move. Is there something predefined or how to implement this? It should be something like ToolTipService.ShowDuration from WPF.

0 votes
0 answers
799 views

I’m using the DirectX 11 renderer.
Issue can be best seen in this image:

1 pixel errors

You can see that especially between the colors you can see lots of “dots”, which appear quite randomly as you zoom around.
But even in the black part some of these are created, so it is not exclusively to the multi color part.

I’m not sure why it happens and how to fix it, it seems like in some situations for some reason 1 pixel is left out for coloring (keeps background color).
I created this with lots of lines from a 60 hz input signal, and each signal gets drawn as a line. While the end result itself looks perfect, I’m getting these artifacts everywhere.

I suspect it happens from an optimization which is why I tried to turn them all off, but I wasn’t been able to find such a setting.
Any idea on how to fix this? 🙂

0 votes
0 answers
4k views

Update: Please remove my previous question, I did not input the code correctly

I have a collection of line charts that use FastLineRenderableSeries, and they all share the same View.xaml. I’m trying to change the font size for the Y-axis tick labels in the view but for some reason it gets ignored.

This is the view for the container for all the charts:

<UserControl x:Class="....SciCharts.MainView"
<DockPanel >
    <Grid>
            <ItemsControl ItemsSource="{Binding ComponentCharts}" Grid.IsSharedSizeScope="True">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <UniformGrid Rows="2"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <ContentControl Content="{Binding}"/>
                        </Grid>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
    </Grid>
</DockPanel>

And this is the view for each individual line chart:

<UserControl x:Class="SciCharts.LineChartView"
<UserControl.Resources>
    <converters:BooleanToCollapsedVisibilityConverter x:Key="VisibilityConverter"/>
    <converters:ReverseBooleanToCollapsedConverter x:Key="ReverseVisibilityConverter"/>
    <Style x:Key="AxisLabelStyle" TargetType="s:DefaultTickLabel">
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="FontSize" Value="2.0"/>
        <Setter Property="HorizontalAnchorPoint" Value="Left"/>
    </Style>
</UserControl.Resources>
<DockPanel>
    <s:SciChartSurface RenderableSeries="{Binding LineChart.SeriesCollection}">
        <s:SciChartSurface.XAxes>
            <s:CategoryNumericAxis AxisTitle="Time" DrawMajorBands="False" AutoRange="Always" DrawLabels="True" />
        </s:SciChartSurface.XAxes>
        <s:SciChartSurface.YAxes>
            <s:NumericAxis DrawMajorBands="False" AxisAlignment="Left" AxisTitle="Rate" AutoTicks="True" AutoRange="Always" TickLabelStyle="{StaticResource AxisLabelStyle}"/>
        </s:SciChartSurface.YAxes>
    </s:SciChartSurface>
</DockPanel>

I’m able to change the color and the anchor point using the code above, but the font size is ignored completely. Tried setting it under NumericAxis but same result. Please let me know what can I do to achieve this.
Thanks,

0 votes
1k 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
1k views

I have two questions.

1.
I want text annotation witch is selectable but user can not move it. All User can do is delete.
Are there any good idea?

2.
How to catch the mouse over event of the AnnotationViewModel to be binded?

Thank you.

0 votes
0 answers
3k views

Hi
By default legends are being draw on scichart surface. I want to draw them outside the scichart surface because as the number of render-able series increase legends hides them. Please give me suggestion how do i do it ?

0 votes
6k views

Hello all and happy new year,

Today I had a surprise that graph was showing no lines except dots of the cursor for the series line.
I initialize with SciChartSurface.SetLicenseKey(“key here”); I have tried to create the SciChartLicence.xml and this way works.

annex is the example project. just set a correct key and you will have that behaviour.

best regards
Marcel

  • Marcel asked 8 years ago
  • last active 3 years ago
0 votes
786 views

Hello,

I’m trying to add custom text to a rollover cursor that is dependent on its X and Y Values.

For instance, if the Y Value is 1, but the X value (date) is old, it should say “1 ft Observed”, but if it the date is in the future, it should say “1 ft Predicted”. I can format the cursor label via NumericLabelProvider, but it only provides me the Y value, and I need the corresponding X value as well to properly format the cursor label.

    class NumericLabelProviderEx() : NumericLabelProvider() {
        override fun formatCursorLabel(doubleValue: Double): CharSequence {
            val formatString = "%.1f %s\n%s"
            // Any way to get corresponding X value for this so I can change "Observed" to "Predicted" if this point is in the future?
            val s = String.format(formatString, doubleValue, "ft", "Observed")
            return s
        }
    }

    yAxis.setLabelProvider(NumericLabelProviderEx())

Is there an alternative approach to accomplish this within SciChart?

Thank you.

  • C Bolton asked 10 months ago
  • last active 10 months ago
0 votes
1k views

(WPF) I am confused about the difference among Rollover tooltip, Cursor tooltip and Tooltip. In CustomTooltipsWithModifiers.xaml in example suite, it has all of them, I can see they have different styles, but not sure when to use which. Please advise. Thanks.

  • sally an asked 1 year ago
  • last active 1 year ago
3 votes
11k views
  • bstapylton asked 8 years ago
  • last active 7 years ago
0 votes
2k views

I downloaded the Scichart example package from Github and tried to build some of the apps. But I got many errors related to the Animation library in RenderableSeries namesapce.

On the lines “using SciChart.Charting.Visuals.RenderableSeries.Animations;”, Visual Studio will give an error saying “The type or namespace named “Animiations” does not exist in the namespace SciChart.Charting.Visuals.RenderableSeries (are you missing an assembly reference?)”, although I already added all the refeerences needed for SciChart. What am I missing? I have the full version of Scichart for WPF.

Thank you

Kevin

0 votes
0 answers
7k views

Hi,

Is this possible to plot a wpf graph by binding DataTable in Scichart control. If it is possible can any body suggest or post sample code for me. It would be much appreciated.

Regards:-
Rajanikanth

0 votes
3k views

Notice in the image that the point marker is cut off by the graph border. Is there any way to allow it to extend past the border so in this case it would be a full circle? Thank you!

  • AE Admin asked 4 years ago
  • last active 4 years ago
0 votes
4k views

I have two similar charts, the first one is rendered in the View and it is working fine, but the other one is rendered in the memory at run time. The both charts share the same RenderableSeries, but when I assign the RenderableSeries to the SciChartSurface Instance at run time then I get the following error message:

Cannot implicitly convert type ‘System.Collections.ObjectModel.ObservableCollection(SciChart.Charting.Model.ChartSeries.ImpulseRenderableSeriesViewModel)’ to ‘System.Collections.ObjectModel.ObservableCollection(SciChart.Charting.Visuals.RenderableSeries.IRenderableSeries)’

I already changed the Data Type of the renderable Series to FastImpulseRenderableSeries but the behavior in the View is not the same.

I am trying to cast each serie but it does not work. do you habe a hint for me?

1 vote
3k views

Hi,

is it somehow possible to have a print dialog that allows for a preview?

thank you,
Bruno

1 vote
4k views

Hi. I hava an ObservablleCollection, that has properties like Date, value and other informations, the series would need to use Date and Value properties. Also i want to binding tooltips at information from that ObservableCollection and i can’t do it because the RolloverModifier datacontext is SeriesInfo. Can you help me with this please?

0 votes
604 views

Hello.

The graph is automatically stretched in width. How to do the same in height?

Video

0 votes
3k views

On Xamarin iOS there is a property SciChartSurface.ChartTitle.

Is there an equivalent on Xamarin Android?

0 votes
3k views

Hi,
I use HitTest in the “OnModifierMouseDown(ModifierMouseArgs e)”in the MyCustomClass.
This Class inherits SeriesSelectionModifier.
The result of HitTest is shifted by the width of Y axis when the AxisAlignment of Y axis is Left.
So, the HitTestInfo of XValue or IsHit or anymore are not correct.
For Avoiding this ploblem, I need to write the following code before HitTest.
var point = new Point(e.MousePoint.X, e.MousePoint.Y);
if (base.YAxis.AxisAlignment == SciChart.Charting.Visuals.Axes.AxisAlignment.Left)
{
point.X = point.X – base.YAxis.Width;
}

Is this a specification or a bug?

Thanks.

0 votes
3k views

Hello support!
I have two questions, I would be very grateful for any information or hint.

  1. What methods can I use to bind a Visual Range to an Axis or Renderable Series to change them synchronously, I need to combine the series on 3 different surfaces.

  2. How can I control the YAxisDragModifier to block the movement of the Visual Range when a certain condition is reached. Thanks.

1 vote
6k views

The VerticalSliceModifier does not seem to work with a DateTimeCategory X axis. Only the very top and the base of the line are shown and even they disappear on attempt to drag. Is slicing on DateTimeCategory Axis not supported?

The same code, taken from the official example, works well with a Numeric axis.

1 vote
6k views

Hi,

Basically, I want to draw line annotation and add over them the difference in percent between two Y points related to the axis. I tried this code:

    <s:LineArrowAnnotation Stroke="#555" StrokeThickness="2" X1="1.2" X2="2.5" XAxisId="XAxis1" Y1="3.8" Y2="6">
    <s:AnnotationLabel LabelPlacement="Top" LabelStyle="{StaticResource sideLabel}" Text="centered" />
</s:LineArrowAnnotation>

As you did in some of your examples but doesn’t seems to work with LineArrowAnnotation.

Please help me.

Thanks!

0 votes
4k views

In your example “CustomTooltipsWithModifiers” you show how to apply custom styles and templates to XML generated RenderableSeries, like: (works fine)

<s:SciChartSurface.RenderableSeries> 
<s:FastLineRenderableSeries 
Stroke="#ff6495ed" 
StrokeThickness="2" 
s:VerticalSliceModifier.TooltipContainerStyle="{StaticResource TooltipStyle1}" 
s:VerticalSliceModifier.TooltipTemplate="{StaticResource VerticalSliceTooltipTemplate1}"/>

In your example “ChangeSeriesTypeInCode” you generate the RenderableSeries in code programmatically, like: (works fine)

var series = new StackedMountainRenderableSeries() 
{ 
Name = "any Name", 
IsVisible = "any visibility", 
StrokeThickness = "any int", 
Stroke = "any Color", 
Fill = "any Brush", 
DataSeries = "any dataSeries" 
}; 
Chart.RenderableSeries.Add(series);

My Question: How do I apply the Templates and Styles for Modifiers to the programmatically generated RenderableSeries?

Thanks for help.

1 vote
7k views

Hi Guys,

I am using a Data Template to display charts in an Items Control. The template displays the charts correctly but the Modifier group in the chart modifier of the template is not working correctly.

The IsEnabled property of each modifier is bound to a ChartModifier Property in the parent view model for the ItemsControl which then needs to be converted to a boolean as per the SciChart Trader example.

As you can see from the code below I have inserted a textblock element to test the conversion and the binding. The ChartModifier for the parent viewmodel is initialized to “ZoomPan”. When run the template correctly displays “False” in the textblock but none of the converter calls fire from the ModifierGroup leaving each chart with all 4 modifiers active at the same time.

Any thoughts as to possible causes/cures would be much appreciated

Regards
Ian Carson

        <DataTemplate x:Key="ChartTemplate">
            <Grid Margin="0"
                  HorizontalAlignment="Stretch"
                  VerticalAlignment="Stretch"
                  Height="400">
                <Grid.RowDefinitions>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="3*" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <TextBlock Text="{Binding Path=DataContext.ChartModifier,  Converter={StaticResource IsModifierTypeConverter}, ConverterParameter=Rollover, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type explorer:PriceGraphShapeView}}, Mode=TwoWay }"/>
                <visuals:SciStockChart Grid.Row="1"
                                       Margin="0"
                                       x:Name="PriceChart"
                                       SeriesSource="{Binding Path=PriceChartAndOverlaySeries}"
                                       visuals:ThemeManager.Theme="BlackSteel"
                                       visuals:SciChartGroup.VerticalChartGroup="{Binding VerticalGroupID}"
                                       DrawMinorGridLines="False"
                                       DrawMajorGridLines="True"
                                       XAxisTextFormatting="dd MMM yyyy"
                                       YAxisTextFormatting="0.00">
                    <visuals:SciChartSurface.XAxis>
                        <visuals:CategoryDateTimeAxis DrawMajorBands="True"
                                                      GrowBy="0.0, 0.1" />
                    </visuals:SciChartSurface.XAxis>
                    <visuals:SciStockChart.ChartModifier>
                        <visuals:ModifierGroup visuals:MouseManager.MouseEventGroup="{Binding MouseGroupID}">
                            <visuals:RolloverModifier  IsEnabled="{Binding Path=DataContext.ChartModifier,  Converter={StaticResource IsModifierTypeConverter}, ConverterParameter=Rollover, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type explorer:PriceGraphShapeView}}, Mode=TwoWay }"
                                                      ReceiveHandledEvents="True" />
                            <visuals:ZoomPanModifier IsEnabled="{Binding Path=DataContext.ChartModifier, Converter={StaticResource IsModifierTypeConverter}, ConverterParameter=ZoomPan, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type explorer:PriceGraphShapeView}} , Mode=TwoWay }"
                                                     XyDirection="XDirection"
                                                     ReceiveHandledEvents="True" />
                            <visuals:CursorModifier IsEnabled="{Binding Path=DataContext.ChartModifier, Converter={StaticResource IsModifierTypeConverter}, ConverterParameter=CrosshairsCursor, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type explorer:PriceGraphShapeView}}, Mode=TwoWay }"
                                                    ReceiveHandledEvents="True"
                                                    ShowAxisLabels="True"
                                                    ShowTooltip="False" />
                            <visuals:RubberBandXyZoomModifier IsEnabled="{Binding Path=DataContext.ChartModifier, Converter={StaticResource IsModifierTypeConverter}, ConverterParameter=RubberBandZoom, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type explorer:PriceGraphShapeView}}, Mode=TwoWay  }"
                                                              IsXAxisOnly="True"
                                                              IsAnimated="True"
                                                              ReceiveHandledEvents="True" />
                            <visuals:ZoomExtentsModifier ExecuteOn="MouseDoubleClick" />
                        </visuals:ModifierGroup>
                    </visuals:SciStockChart.ChartModifier>
                </visuals:SciStockChart>
                <uiServices:GridExpander Grid.Row="2"
                                         Margin="0"
                                         BorderBrush="#FF67777C"
                                         Height="10"
                                         Background="#FF67777C"
                                         HorizontalAlignment="Stretch"
                                         VerticalAlignment="Center"
                                         IsCollapsed="False"
                                         IsTabStop="False"
                                         Direction="Next" />
                <ItemsControl x:Name="IndicatorsContainer"
                              Grid.Row="3"
                              Margin="0"
                              Background="Aqua"
                              ItemsSource="{Binding Indicators}"
                              ItemTemplate="{StaticResource IndicatorTemplate}">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <UniformGrid Columns="1"
                                         Background="Bisque" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                </ItemsControl>
            </Grid>
        </DataTemplate>
  • Ian Carson asked 7 years ago
  • last active 7 years ago
0 votes
1k views

Hi
I have a fifo scrolling chart
When I set the axis visibleRangeListener, the chart performance goes down and it gets an exception.
what is the solution?

0 votes
4k views

Hello, SciChart Team

I am using VerticalLineAnnotations on my charts to show harmonics. I am generating them programmatically by code:

double x = harmonic.Frequency; // interval between lines
        int i = 1;
        while (x < Math.Min((double)MainChartSurface.XAxes[0].DataRange.Max,10000.0))
        {
            VerticalLineAnnotation newAnn = new VerticalLineAnnotation() {
                X1 = x,
                Stroke = new SolidColorBrush(harmonic.Color),
                ShowLabel = false,
                IsEditable = false
            };
            MainChartSurface.Annotations.Add(newAnn);
            x = harmonic.Frequency * ++i;
        }

After this code runs i expect vertical lines to appear, but they don’t.
They appear only when I pan or zoom chart (just do something): images before and after are attached, please help me to understand what i’m missing to make surface refresh. i tried to use method “SciChartSurface.UpdateLayout();” but it didn’t help.

On the first image there’s chart right after code runs. in the left upper corner there appears little line. if i run code for another harmonic right after it – it will appear normally, but the first one wouldn’t appear until user touches chart (uses pan or zoom, etc.)

Please help with this minor but uncomfortable issue.
Thanks in advance
Alexander.

0 votes
8k views

HI,
I need to display a chart with a fixed X axis, i.e. with the scale remaining fixed between 0 and 360 with these end values displayed. I have set this in XAML with the SciChartSurface.AutoRangeOnStartup False and implemented InvalidateParentSurface(RangeMode.ZoomToFitY) after drawing the chart but unless the data fills the chart the end values on the scale are not displayed. If I set the VisibleRange to -5, 365 and stretch the chart in the X plane the 360 then the 0 appear, see attached sample.

If I increase the scale values significantly or have large GrowBy values the end values are displayed but this can be messy, depending on the data and leaves large blank areas at each end of the chart. Is there a way round this or should I implement a ZoomExtentsModifier to handle this?

Am I right in thinking that I will need to implement a ZoomExtentsModifier anyway to get this functionality when the user double clicks the chart to zoom extents?

I am using SciChart v1.6.0.2295 Hotfix.

Many Thanks
Dai

  • Dai asked 8 years ago
0 votes
9k views

How can I hide and show a set of datapoints with or sometimes without the corresponding axis and labels?

0 votes
2k views

Hello,

I am creating a chart which should add a series with its respective X and Y axes on a button click.

I am adding axes as follows:

private void AddYAxis(List<double> yValues)
    {
        var yAxis = new NumericAxis()
        {
            AxisAlignment = AxisAlignment.Left,
            AxisTitle = "Number of Samples (per Series)",
            Id = "first"
        };
        sciChart.YAxes.Add(yAxis);
    }

private void AddXAxis(List<DateTime> xValues)
    {
        var xAxis = new DateTimeAxis()
        {
            TextFormatting = "YYYY-MM-DD HH:mm:ss",
            AxisAlignment = AxisAlignment.Bottom,
            AxisTitle = "Bottom Axis",
            Id = "first"
        };
        sciChart.XAxes.Add(xAxis);
    }

Then, I am adding the renderable series:

 private void AddSeriesClick(List<DateTime> xValues, List<double> yValues)
    {
        var dataSeries = new XyDataSeries<DateTime, double>();
        dataSeries.Append(xValues, yValues);

        var renderSeries = new FastLineRenderableSeries
        {
            Stroke = Color.FromArgb(0xFF, 0x40, 0x83, 0xB7),
            DataSeries = dataSeries,
            StrokeThickness = 2,
        };
        renderSeries.XAxis = sciChart.XAxes.GetAxisById("first");
        renderSeries.YAxis = sciChart.YAxes.GetAxisById("first");
        sciChart.RenderableSeries.Add(renderSeries);
        sciChart.ZoomExtents();
    }

But, I am only able to see the Axis titles and nothing else is rendered in the chart.

Following exception is thrown:

SciChartSurface didn’t render, because an exception was thrown:
Message: AxisCollection.GetAxisById(‘DefaultAxisId’) returned no axis with ID=DefaultAxisId. Please check you have added an axis with this Id to the AxisCollection

Stack Trace: at SciChart.Charting.Model.AxisCollection.GetAxisById(String axisId, Boolean assertAxisExists)
at A.IJ.DB(AxisCollection D, IRenderableSeries I, RenderPassInfo J, IPointResamplerFactory M, IDataSeries& O, IndexRange& S, IPointSeries& T, Int32& AB)
at A.IJ.S(ISciChartSurface D, Size I)
at A.IJ.RenderLoop(IRenderContext2D renderContext)
at SciChart.Charting.Visuals.SciChartSurface.DoDrawingLoop()

The program ‘[17304] SciChart_MultipleXAxis.exe’ has exited with code 0 (0x0).

Can you kindly look into it.

0 votes
2k views

I am showing a dialog window with a ChartSurface in it. I have a context menu option to export to an image, and on window load I export to an XPS file. The dialog works fine if I do not use either feature, but once I do, I intermittently get an exception when showing the dialog. It appears to regularly take 3 instances of the dialog after the export feature is used to throw the exception, and the exception gets thrown twice the first time, threes times the second time, and so on. Again, if I do not use the export feature (no call to ExportToFile), I do not get any exceptions no matter how many times I show the dialog.

The exception message is “The provided DependencyObject is not a context for this Freezable. Parameter name: context”.

There are no other useful details in the exception from what I can see. Its all pretty abstract WPF stuff. The exported file/image seem to be generated accurately regardless of the exception.

I am using SciChart 4.2.2.9724, Visual Studio 2017 Professional, C#, WPF

Any ideas?

0 votes
6k views

Hello!

In your example of RolloverMoodifier on Candlestics there are only four fields in tooltip (Highest, Open, Close, Lowest).

These are all available fields? Because it’s quite useful to place on tooltip CloseTime and Volume. Of course I can see volume on VolumeChartPanel and calculate CloseTime by myself, but when there are many candlesticks on ChartPanel it’s uncomfortable to do.

0 votes
2k views

I have a ItemsControl which shows line charts in a vertical uniform grid. Currently they all share the same Annotations collection. The thing I am looking for is if there is a way to control which graph the annotation will show up on. Currently if I add a Text annotation to the collection it shows up on all of the graphs. But it works fine when added a vertical line annotation where I want it to show up on all graphs. I also have the need for a vertical line annotation to show up on only one graph though. If there is not a way to control this what would be the best solution for this?

Thank You

Todd

0 votes
4k views

There’s a build error when implementing IPointMarkerPaletteProvider, IFillPaletteProvider, or IStrokePaletteProvider.

MainActivity_P.java:50: error: isAttached() in MainActivity_P cannot override isAttached() in PaletteProviderBase
    public boolean isAttached ()
                   ^
    overridden method is final



 MainActivity_P.java:58: error: attachTo(IServiceContainer) in MainActivity_P cannot override attachTo(IServiceContainer) in       PaletteProviderBase
    public void attachTo (com.scichart.core.IServiceContainer p0)
                ^
    overridden method is final



MainActivity_P.java:66: error: detach() in MainActivity_P cannot override detach() in PaletteProviderBase
    public void detach ()
                ^
    overridden method is fina

What’s wrong with it? See the attached project to reproduce the issue.

  • rubs00 asked 3 years ago
  • last active 3 years ago
0 votes
5k views

To whom this may concern:

I’ve been reading through the following posts:

https://www.scichart.com/questions/question/how-to-draw-oval-circle-annotation
https://www.scichart.com/questions/question/resizing-a-custom-annotation

Unfortunately, I’m no closer to generating a re-sizable oval ellipse: mainly because techman234’s response is all gibberish and I’ve no clue how to re-template a box annotation. I’ve observed your “create annotations dynamically” and “composite annotations.”

Could you give a more thorough tutorial on this? I would like to design a resizable custom annotation like I would a regular custom annotation without the AnchorPointAnnotations limitations.

Thanks kindly!

— Ari

EDIT: Found a resource but still need help

https://www.scichart.com/documentation/v4.x/webframe.html#The%20CustomAnnotation%20Type.html

So after doing some deeper digging, I came across this link that sufficiently explains how to make a box template. I was able to make an ellipse but the heights and widths are fixed. I can re-size the outer limits of the invisible “box” but the ellipse itself remains the same size.

I would like to be able to re-size and re-shape the ellipse along with the box. I would also, if possible, have a mechanism to rotate the ellipse to a certain angle.

Can you please advise?

Thanks!

  • Ari Sagiv asked 5 years ago
  • last active 5 years ago
0 votes
7k views

Hi,

I would like to show series value labels on my vertical line annotation, but with the following specifics:

1) The label should should look like the series value label that appears on the y-axis i.e. it should have the colour of the series and have a nice little luggage-label shape

2) The label should always be visible and should show the value of the nearest point in each series (with no distance limit)

How can I achieve this?

Thanks!
Felix

  • F W asked 6 years ago
  • last active 6 years ago
0 votes
1k views

Hello,
I am currently using the HighQualityRenderSurface (as seen here: https://support.scichart.com/index.php?/News/NewsItem/View/30) to replace some dynamically drawn maps in an application. I’m wondering if there is a way to make a blended/ gradient brush that can be drawn onto this surface. The application currently uses a three color blended brush drawn onto a WPF canvas.

Edit: Added images as an example of what we are trying to achieve.

zoomed out

zoomed in

0 votes
3k views

I just installed scicharts and tried to open the Launch SciChart v5 wpf example suite it just crashes on me. I am using windows 10 64bit. The event logs on windows shows:

1026
2
0
0x80000000000000

61382
Application
afogel-l-w10.tainstruments.com


Application: SciChart.Examples.Demo.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.InvalidOperationException at System.Windows.Window.set_Owner(System.Windows.Window) at SciChart.Examples.Demo.App.App_DispatcherUnhandledException(System.Object, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs) at System.Windows.Threading.Dispatcher.CatchException(System.Exception) 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 SciChart.Examples.Demo.App.Main()

Any clues?
Thanks!

Showing 1 - 50 of 3k results