Dear Andrew,
Thank you for the past answers. I have a new question. I have a heatmap with 2 line charts at its left aand top position. the top line chart plot the horizontal values where the mouse if hovering and left chart displays vertical values from the mouse position.
This is working great, but the issue is the heatmap is not always square and I am trying the aligh the line charts with the heatmap dimensions
two issues,
-
the heatmap X/Y dimension are not always same, in fact I have a function which listens to the changing heatmap zoom factor and makes sure the X/Y are always “square” as we want to show the heatmap with square pixels. (see video #2) https://youtu.be/wXStF-7bWsw
-
As I dynamically chage the size of the plot the… the proportion of actual chart area to axis lable changes thus varying the overlap. (see video #1) https://youtu.be/loAVpYSRJ38
Let me know if you need more information,
Best,
Pramod
- pramod butte asked 3 years ago
- last active 3 years ago
Hi!
I am going through the showcase example for the spectrogram and I had a confusion on the sizeX and Y parameter of SCIUniformHeatmapDataSeries. Are these sizes as per the width and height of the surfaceChart ? I am going to plot an array of data. How do I determine the correct sizes for X and Y.
Moreover, is it necessary that the size array used for updating the dataSeries has to be (xSize*ySize)?
- Vivek Athreya asked 8 years ago
- last active 8 years ago
I have a custom label formatter which only takes int and covert to string. But for Histogram I need to plot X values with double values. So i cant use that Custom label formatter.
- Anitha Chanumolu asked 11 years ago
- last active 11 years ago
I have created a default axis style for 2d chart(below), I find if I want to binding the “Stroke” property in MajorTickLineStyle, it will report
“Cannot find source for binding with reference ‘RelativeSource FindAncestor, AncestorType=’scichartWrapper.TwoDSciChart’, AncestorLevel=’1”. BindingExpression:Path=MajorTickColor; DataItem=null; target element is ‘Line’ (Name=”); target property is ‘Stroke’ (type ‘Brush’)”. But the “AxisBandsFill” binding can work.Does MajorTickLineStyle support binding Line’s Stroke property?
- ling yang asked 11 months ago
- last active 6 months ago
I’m working with Custom Meshes. I want the user to be able to delete and create an arbitrary number of meshes. It’s fine if there’s a maximum number of meshes that can exist at a time. However, by repeatedly clearing and creating the same mesh, I get this error;
System.InvalidOperationException: ‘The Maximum Mesh ID has been exceeded. Please see http://www.scichart.com/maximum-mesh-id‘
I get the error when I try to add a FreeSurfaceRenderableSeries3D object to the a Scichart3DSurface.RenderableSeries. The link provided by the error got 404’d. I have sixteen SceneObject objects and one TextSceneEntity, borrowed from the example suite. While reproducing the error, I never had more than one mesh. I cleared the RenderableSeries before inserting another mesh.
Is it possible to keep adding meshes as long as I delete them, or does a SciChart3DSurface have a maximum number of meshes that can be added, even with deletion?
- Will Wright asked 3 years ago
- last active 3 years ago
Hello,
We are working on developing an application that will be deployed on tug boats.
Our end users have asked that we provide a “night mode” to help reduce glare at night as it gets very dark out on the open water and any light reflected off windows seems incredibly bright.
Has anyone previously asked for a simple black and red “night mode” graph theme? If not, would it be possible to put one together?
Thanks,
Aaron
- Aaron Douglas asked 12 years ago
- last active 1 year ago
Hello SciChart Community,
I am currently working on a Windows Forms C# application where I need to visualize a 2D byte array (A[MxN]) on a 3D chart using SciChart. However, I’m facing some difficulties in achieving this task.
My goal is to display the contents of the byte array A on a 3D surface plot or another suitable 3D chart type provided by SciChart. Each byte value in the array represents some intensity or elevation value.
I have explored the documentation and examples provided by SciChart, but I couldn’t find specific guidance on how to achieve this.
Could you please provide some assistance or guidance on how I can achieve this visualization using SciChart in a Windows Forms C# application? Any code snippets, examples, or documentation references would be greatly appreciated.
Thank you in advance for your help.
Best regards,
Namblue73.
- Mr Nha asked 2 years ago
- last active 2 years ago
Could I have a date please.
is it possible for the December or more likely for January?
robert
- Robert De Saeger asked 8 years ago
- last active 8 years ago
Hi, currently in my application, when mouse over the data point, the line will be selected. If mouse over the line, the line will not be selected. Is there any way to know that the line is mouse over and make the line selected?
- sim asked 14 years ago
- Roman Gavrilow asked 5 years ago
- last active 5 years ago
Hi,
I was following https://www.scichart.com/example/android-chart-custom-series-spline-line/ to implement a custom bezel curve. This works fine for static datasets but when I append values to the datasets they are not getting reflected (i.e has no effect on realtime datasets). Is there something that I am missing?
- Vidya Sagar Mohanraj asked 8 years ago
- last active 8 years ago
Thank you for your support.
This time, I’d like to know
– how to get the position data on cursor in the heatmap.
– how to draw or remove the horizontal and vertical line on cursor point in the heatmap.
Thank you.
- Yutaka Dejima asked 7 years ago
- last active 7 years ago
Hello,
I’d like to have some kind of highlight functionality for a chart as shown in the attached image. Actually it’s exactly what a ScrollBar control does for an overview, but without changing the visible range. Is there any way to (ab)use the ScrollBar for functionality like this? If not, can you perhaps give me some pointers on how you would implement something like this. Or if there is something similar in SciChart I missed?
- _ _ asked 10 years ago
- last active 10 years ago
When displaying a value in a stacked column chart, if the value is negative, the negative value should be drawn from the 0 position of the y-axis or from below the other negative value if it exists. Similarly, the positive value after the negative should be drawn from the 0 position of the y-axis or from above the other positive value if it exists. But instead, in both cases, they are being drawn from the end of the previous value, resulting in overlapping.
- Manash Prajapati asked 2 years ago
- last active 2 years ago
I use SciChart.5.4.0.12119.
Some lines on the image are missing(picture1).
But, if zoomed image, the lines is drawn(picture2).
I want to show all lines wighout zooming.
Is there any way to solve this problem?
- Yuki Tabata asked 4 years ago
- last active 4 years ago
Hello,
Can someone explain how to set SeriesValueModifier.IsSeriesValueModifierEnabled for particular RenderableSeries in code?
- Roman asked 11 years ago
- last active 11 years ago
Hi guys,
I have some troubles with piecharts in swift. I want to provide custom labels outside of the piecharts segments. I found a screenshot of a nested piechart attached to an issue in your issue tracker. Thats what I want to do in swift, but I couldn’t find out a way to do so. Could you please provide an example code?
Thanks a lot in advance!
Alex
- Alexander Frankenhauser asked 5 years ago
- last active 1 year ago
My chart is dynamic, adding data from the right side all the time, and scrolling the chart to the left. Now the chart can manually scroll to the right indefinitely, but there are many blank areas on the right side. What can I do to limit the range of scrolling to the right? Is there any way to limit the zoom ratio to prohibit the chart from scrolling to the right indefinitely?
- WU GUANGYU asked 5 years ago
- last active 5 years ago
Hello,
in the attached solution i tried to extend the chart in your MVVM-Tutorial an overview control as it is shown here: https://www.scichart.com/example/wpf-chart-example-scroll-chart-using-overview-control/
However i get multiple binding exceptions that i not really understand.
I would be very thankful if you could help me out.
Best regards
Alexander
- Alexander Lipp asked 7 years ago
- last active 7 years ago
Hi, I want to rotate an ObjectModel3D with multiple axis of rotation.
But Rotation property of ObjectModel3D can set only one axis (X or Y or Z).
How can I solve this problem?
Thanks
- JONGBOG JOUNG asked 3 years ago
- last active 3 years ago
Hi.
I’m in process optimizing my app.
I’m using Objective-c.
I’d found some memory leaking issues and successfully fixed some of that.
A first issue was about ‘renderableSeries’ under ‘SCIChartSurfaceView’.
If you set class of UIView as ‘SCIChartSurfaceView’ in interface builder and make outlet without setting ‘strong’ or ‘weak’ in .m file,
It never get released automatically and will stay retained on memory.
For me, it caused about 90MB of memory leaking.
But I could solve this issue manually by putting -(void)clear; method of renderableSeries in viewWillDisappear method.
Another issue is about ‘SCIDateTimeDeltaCalculator’ and ‘SCINumericDeltaCalculator’.
It causes about 50MB of memory leaking.
But problem is, I couldn’t find neither where it’s been called nor how I release this manually.
I will be waiting for your answer.
Thanks.
+)
(lldb) po SciChartVersionNumber
0x3ff0000000000000
(lldb) po SciChartVersionString
0x474f525029232840
I wanted to know what version Im using.. but i couldnt know what version am i using..?
- eunteak koh asked 7 years ago
- last active 7 years ago
I noticed that there are two debugging perspectives in Eclipse that are set for Android development.
Why two?
What does DDMS perspective do that Debug perspective does not?
To clarify, I’m only interested in the diff comparison table, not the complete list of DDMS functions.
Session.StatusCallback cannot be resolved for type – Facebook API
Can’t debug via eclipse on the phone with Jelly Bean
What does the use of “.” Without an object in Android (or java)?
Launching TriggerIO Android ForgeInspector
Android Maven in Eclipse – creating an activity
I’m also curious to know why the people who developed DDMS didn’t add it to the Debug perspective, but chose to implement it as an independent perspective.
- Kirsten Hickman asked 5 years ago
I’m using a Gridsplitter to resize the window with the surfacechart. My problem is that the Chartmodifier is too short. If i press inside the chart, the modifier will resize correctly… How can I establish that the height of the modifier grow by Gridsplitter?
- Daniel Hartl asked 11 years ago
- last active 11 years ago
Hello,
I have a WPF .Net 6 application running on Window 11 that monitors data coming from the network.
The app has five tab controls, each tab has four FIFO line charts.
I have another app (the “sender”) that sends simulated data to feed and test the “main” app.
Everything works beautifully when:
– The sender app is not running
– then, first navigate through all tabs, seeing an empty chart (expected)
– Launch the sender app.
– Navigate through tabs, watching them updating in near real time…
But…
If I do not initially navigate through all tabs, only the visible tab gets updated.
I suspect/speculate that SciChart code is doing some “critical” initializations on the OnLoaded event that are missed if tabs do not get loaded before setup.
We want the charts to get populated even if they are hidden at startup.
Any suggestions to fix the issue? Or am I doing anything wrong ?
Thank you
- Laurent Testud asked 3 years ago
- last active 3 years ago
Hi,
i want to disable the pan effect when user long press on chart and allow the user to scroll only in the currently visible range to view the rollover tooltip so that user can see the reading in the current visible range. Once the long press is release, then enable the pan effect again.
Currently when user try to see the reading using rollover tooltip, the whole chart is moving. I have tried removing and adding the zoompanmodifier on long press gesture in ios. But it is not working.
Thank you in advance.
- Manoj Kulkarni asked 6 years ago
Basically i have two data sets (Y1,X) and (Y2,X) i will like to display them one over the other like in the attached picture. Also when i add cursor to one of them it should move the cursor on the other graph as well. Also the zoom on one of the graph should reflect the same way on the other graph.
Right now i am doing this with two sci chart surface, (no cursor linkage). which examples should i look at for this?
- manish Bhardwaj asked 12 years ago
- last active 12 years ago
I’m using an example of RealtimeTickingStockCharts
I’ve added a modifier
new YAxisDragModifier({
dragMode: EDragMode.Scaling,
}),
I see icon changed to arrows but scaling does not work. What should I check ?
- Ivan Skiridomov asked 2 years ago
- last active 2 years ago
Is there a way to update the entire data series instead of a particular y value at an index ?
https://www.scichart.com/documentation/js/current/typedoc/classes/xydataseries.html#update
- vamsi kunchaparthi asked 5 years ago
- last active 5 years ago
I have X axis time data that is in UTC time. I already looked at The DateTimeNumericAxis documentation.
Is there any property to transform the times to local? Or should I just present the bound data in Local Time (convert in code).
Thanks!
- Lenny H asked 1 year ago
- last active 1 year ago
i currently place my custom (templated) legend inside the Scichartsurface (via xaml).
How can I offer the feature to drag the legend with the mouse to any location on the surface? Please note that I also use mouse movements and clicks for several chart modifiers so most likely I would have to check whether the mouse is hovering over the legend when a left mouse click event is raised?
Could you please get me started with some ideas or thoughts as I am not sure how to approach this issue.
Thanks
- bbmat asked 9 years ago
- last active 1 year ago
As I see in the chart surface you have VerticalSliceModifier. Why you don’t have HorizontalSliceModifier? It will be useful (for me))))
- Fedor Iudin asked 1 year ago
- last active 1 year ago
The tick labels of a MATLAB log-scale plot can display as “10^X “.
https://www.mathworks.com/help/matlab/ref/loglog.html
But the log-scale axis in the examples has a style like “Num X 10 ^X”. Is it a way to customize these labels to remove “Num X” before “10^X”?
Furthermore, how to set which value could display a label? I just want the label with integer superscripts. For example, if the VisibleRange = (0.01,1000), only the following tick values :0.01,0.1,1,10,100,1000 can display an label.
PS.
If cannot remove the prefixed “Num X” easily, is it possible to make the labels show the value not using scientific numbers? (display 0.01,0.1,1,10,100,1000 directly)
- Shannon John asked 4 years ago
- last active 4 years ago
Hi,
I’m using the error bars series, and I get some strange behavior when zooming in/out using the RubberBandXyZoomModifier.
Sometimes the vertical line is not drawn, and sometimes the top & bottom horizontal lines are not drawn / drawn too wide.
This issue doesn’t occur when zoom with the MouseWheelZoomModifier.
However, with the MouseWheelZoomModifier in the current implementation the top & bottom horizontal line width depend on the zoom level (the zoom level affects the horizontal lines), where in my opinion it should not. For example, when zooming in, the horizontal lines may cover the whole view width, and when zooming out to a certain level you cannot see them since they are too short.
I attached a few screenshots of the same data in different zoom/pan, when using the RubberBandXyZoomModifier (the MouseWheelZoomModifier issue can be easily reproduced with simple data).
Screenshot ‘error_bars_display1’: horizontal lines are too wide.
Screenshot ‘error_bars_display2’: vertical & horizontal lines are not drawn at all (left line. Only the scatter series cross marker can be seen).
Screenshot ‘error_bars_display3’: vertical line is drawn, but horizontal lines are not (left line. This is one mouse wheel rotation-click away from screenshot #2).
It seems like an issue with the line size calculations (?).
Note: the ‘closing’ value of the HlcSeries is drawn using a Scatter series with a cross marker, so you can ignore it in the attached screenshots.
Thanks.
- Yonatan D asked 11 years ago
- last active 11 years ago
I created an ObjectModel3D object in ViewModel and bound it to View, but the Scale and Position values are not applicable.
What’s wrong with my code?
View:
<UserControl x:Class="Example.TestChart.Views.TestChartView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Example.TestChart.Views"
xmlns:locals="clr-namespace:Example.TestChart.ViewModels"
xmlns:s3D="http://schemas.abtsoftware.co.uk/scichart3D"
mc:Ignorable="d"
xmlns:prism="http://prismlibrary.com/"
prism:ViewModelLocator.AutoWireViewModel="True"
xmlns:object="clr-namespace:SciChart.Charting3D.Visuals.Object;assembly=SciChart.Charting3D"
d:DesignHeight="300"
d:DesignWidth="300">
<Grid>
<s3D:SciChart3DSurface x:Name="SciChart"
Grid.Column="1"
BorderThickness="0"
WorldDimensions="1000,500,500"
RenderableSeries="{s3D:SeriesBinding RenderableSeriesCollenction}"
SceneObjects="{Binding SceneEntity3Ds}"
Grid.Row="1"
>
<s3D:SciChart3DSurface.Camera>
<s3D:Camera3D
Position="30,400,-1250"
Target="40,200,500"
/>
</s3D:SciChart3DSurface.Camera>
<s3D:SciChart3DSurface.XAxis>
<s3D:NumericAxis3D AxisTitle ="X"
TextFormatting ="n2"
AutoRange = "Never"
VisibleRange ="0,100"
GrowBy =" 10, 10"
FlipCoordinates="True"
TickLabelAlignment ="Camera"
/>
</s3D:SciChart3DSurface.XAxis>
<s3D:SciChart3DSurface.YAxis>
<s3D:NumericAxis3D AxisTitle ="Y"
TextFormatting ="n2"
AutoRange = "Never"
VisibleRange ="0,100"
GrowBy =" 10, 10"
TickLabelAlignment ="Camera" />
</s3D:SciChart3DSurface.YAxis>
<s3D:SciChart3DSurface.ZAxis>
<s3D:NumericAxis3D AxisTitle ="Z"
TextFormatting ="n2"
AutoRange = "Never"
VisibleRange ="0,100"
GrowBy ="10,10"
TickLabelAlignment ="Camera" />
</s3D:SciChart3DSurface.ZAxis>
<s3D:SciChart3DSurface.ChartModifier>
<s3D:ModifierGroup3D>
<s3D:OrbitModifier3D ExecuteOn="MouseLeftButton"/>
<s3D:MouseWheelZoomModifier3D />
<s3D:ZoomExtentsModifier3D AnimateDurationMs="500" ResetPosition="-10,400,-850" ResetTarget="0,200,500"/>
</s3D:ModifierGroup3D>
</s3D:SciChart3DSurface.ChartModifier>
</s3D:SciChart3DSurface>
</Grid>
ViewModel:
namespace Example.TestChart.ViewModels
{
using SciChart.Charting3D.Visuals.RenderableSeries;
using System;
using System.Collections.ObjectModel;
using System.Windows.Media;
using Example.BaseClass;
using SciChart.Charting3D.Visuals.Object;
using System.Reflection;
using System.IO;
using SciChart.Charting3D;
public class TestChartViewModel : ViewModelBase
{
public TestChartViewModel()
{
RenderableSeriesCollenction = new ObservableCollection<IRenderableSeries3DViewModel>();
SceneEntity3Ds = new ObservableCollection<ObjectModel3D>();
addr();
}
public void addr()
{
string filePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Objects\\Pawn_Low.obj");
var obj = new ObjectModel3D(new Uri(filePath), Color.FromRgb(Convert.ToByte(255), Convert.ToByte(255), Convert.ToByte(0)))
{
Position = new Vector3(0.5f, 1f, 0.8f),
CoordinateMode = ObjectCoordinateMode.Relative
};
obj.Scale = new Vector3(0.2f, 0.2f, 0.2f);
SceneEntity3Ds.Add(obj);
}
private ObservableCollection<IRenderableSeries3DViewModel> _renderableSeriesCollenction;
public ObservableCollection<IRenderableSeries3DViewModel> RenderableSeriesCollenction
{
get { return _renderableSeriesCollenction; }
set { _renderableSeriesCollenction = value; }
}
private ObservableCollection<ObjectModel3D> _sceneEntity3Ds;
public ObservableCollection<ObjectModel3D> SceneEntity3Ds
{
get { return _sceneEntity3Ds; }
set { _sceneEntity3Ds = value; }
}
}
}
- KEUNYOUNG LEE asked 3 years ago
- last active 3 years ago
I am looking to do some custom formatting of the Heatmap.
Is it possible to show no text if the values are the minimum, and format these buckets to a predefined colour e.g. transparent?
Then I am only showing those buckets with values.
I am using the HeatmapChartwithText as a basis for my prototype at the moment.
This thread looked promising but wasn’t quite what I was looking for, and this thread was last updated a year ago and couldn’t find anything else on the subject so figured it was worth re-asking…
- Matthew Bristow asked 9 years ago
- last active 9 years ago
I want to apply a Style that has removed the horizontal lines of the CursorModifier.
private void ExecuteLoadedCommand(StackGraphViewer parameter)
{
if (root == null) root = parameter;
root.sciChart.ViewportManager = _scrollManager;
// Remove CrosshairsHorizLine
root.sciChart.MouseMove += RemoveCrosshairsHorizLine;
}
private void RemoveCrosshairsHorizLine(object sender, MouseEventArgs e)
{
Line crosshairsHorizLine = root.sciChart.ModifierSurface.Children.OfType<Line>().FirstOrDefault(line => line.X1.CompareTo(0d) == 0);
if (root.sciChart.ModifierSurface.Children.Contains(crosshairsHorizLine))
{
root.sciChart.ModifierSurface.Children.Remove(crosshairsHorizLine);
root.sciChart.MouseMove -= RemoveCrosshairsHorizLine;
}
}
I want to solve it in View XAML, not ViewModel Code.
What should I do?
- Park Seong Gyu asked 5 years ago
- last active 5 years ago
Hi,
I created a chart legend based on the online example. I have three data series: an XyScatterRenderableSeries, a FastColumnRenderableSeries, and a FastLineRenderableSeries. The plot itself is fine. But the legend isn’t. In addition to the checkboxes bug (I don’t need these and so have set ShowVisibilityCheckboxes=False, to no effect), I’m seeing color samples for the scatter and column data, but nothing for the line. All three series names appear as expected, but I’m missing the color sample for the line plot. What’s up?
Thanks,
–George
- yefchak asked 13 years ago
Hi!
I have the following code for a vertical slice modifier
<s:VerticalSliceModifier Name="sliceModifier"
ReceiveHandledEvents="True"
>
<s:VerticalSliceModifier.VerticalLines>
<s:VerticalLineAnnotation Style="{StaticResource sliceStyle}"
X1="{Binding ParentViewModel.SliceModifierPosition, Mode=TwoWay}" />
</s:VerticalSliceModifier.VerticalLines>
</s:VerticalSliceModifier>
This results in a nullreference exception. When I remove the VerticalLines, there is no nullreference exception, also no vertical lines.
As far as I can see ParentViewModel.SliceModifierPosition, does not have a value at the time.
I tried setting the visibility of the slicemodifier to collapsed, but it did not help the exception. Is there any to remove the slicemodifier for the time when X1 is not valid (using MVVM and not binding the slicemodifier itself)?
- nullreference exception location
- Abt.Controls.SciChart.ChartModifiers.VerticalSliceModifier.TB()
: Abt.Controls.SciChart.ChartModifiers.VerticalSliceModifier.OnAttached()
: Abt.Controls.SciChart.ChartModifiers.ModifierGroup.TB(IChartModifier C)
: Abt.Controls.SciChart.Common.Extensions.EnumerableExtensions. <a href="IEnumerable1 , Action1″>
: Abt.Controls.SciChart.ChartModifiers.ModifierGroup.TB(IEnumerable`1 C)
- Kristóf Czimer asked 10 years ago
- last active 10 years ago
Hello.
I am adding Double.NaN into DataSeries for X-Axis synchronization.
It works fine with 3.x version.
When i have updated scichart to 4.x version, i got filled areas instead of empty areas. But, these filled areas are shown only with big count of points. Filled areas disappeared when i zoom in.
This is how i create renderableseries:
new OhlcRenderableSeriesViewModel
{
DataSeries = ohlc,
DrawNaNAs = LineDrawMode.Gaps,
AntiAliasing = false,
StrokeThickness = 1,
StrokeUp = color,
StrokeDown = color,
Stroke = color
}
- Ivan Zakharov asked 10 years ago
- last active 10 years ago
Hi,
We are using a listbox with a datatemplate with SciChart inside.
This worked fine with SciChart v2.x (see attachment)
We’ve implemented SciChart v3.0 and now the charts are being displayed differently. (see attachment)
How is this possible?
We are using the following xaml code:
<UserControl x:Class="Fluke.FV2.Subsystems.DataPresentation.UserInterface.Mvvm.Views.DetailsView"
xmlns=" http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x=" http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d=" http://schemas.microsoft.com/expression/blend/2008"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF4"
xmlns:mc=" http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vc="clr-namespace:Fluke.FV2.Subsystems.DataPresentation.UserInterface.Mvvm.Components"
xmlns:vm="clr-namespace:Fluke.FV2.Subsystems.DataPresentation.UserInterface.Mvvm.ViewModel"
xmlns:SciChart=" http://schemas.abtsoftware.co.uk/scichart"
mc:Ignorable="d"
d:DesignWidth="640" d:DesignHeight="480"
DataContext="{Binding Source={x:Static vm:ViewModelLocator.DetailsStatic}}"
Visibility="{Binding Path=DetailsVisibility}" xmlns:c1=" http://schemas.componentone.com/winfx/2006/xaml">
<UserControl.Resources>
<vc:ImageConverter x:Key="ImageConverter"></vc:ImageConverter>
<vc:DateTimeConverter x:Key="DateTimeConverter"></vc:DateTimeConverter>
<vc:DateConverter x:Key="DateConverter"></vc:DateConverter>
<vc:TimeConverter x:Key="TimeConverter"></vc:TimeConverter>
<Style TargetType="{x:Type ListBox}" x:Key="ListBoxStyle">
</Style>
<DataTemplate x:Key="ItemTemplate">
<Grid>
<Border BorderBrush="#FFC20E" BorderThickness="3" Margin="10" Background="{StaticResource SnapshotBackgroundBrush}" CornerRadius="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Margin="5" Header="{Binding Path=Snapshot.TimeStamp, Converter={StaticResource DateTimeConverter}}"
Visibility="{Binding Path=DataContext.ScreenVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
<Image Margin="2" Source="{Binding Path=Snapshot.Screen}" MaxHeight="240" MaxWidth="320" />
</GroupBox>
<SciChart:SciChartSurface Grid.Column="1" x:Name="sciChartSurface"
RenderableSeries="{Binding Path=RenderableSeries}"
SciChart:ThemeManager.Theme="BrightSpark"
XAxis="{Binding Path=XAxis}"
YAxes="{Binding Path=YAxes}"
Annotations="{Binding Path=Annotations}"
ChartModifier="{Binding Path=ChartModifier}"
Visibility="{Binding Path=DataContext.WaveformVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
Margin="0,3,0,3" Height="280">
</SciChart:SciChartSurface>
<Canvas Grid.Column="1" Background="Transparent"></Canvas>
<GroupBox x:Name="setupItem" Grid.Column="2" Margin="5" Width="200"
Visibility="{Binding Path=DataContext.SetupVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<Label Content="Setup" />
<Label Content=" " />
<Label Content="{Binding Path=SetupDateTime, Converter={StaticResource DateTimeConverter}}"/>
</StackPanel>
</GroupBox.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition Height="20" />
<RowDefinition Height="20" />
<RowDefinition Height="23" />
<RowDefinition Height="20" />
<RowDefinition Height="20" />
<RowDefinition Height="20" />
<RowDefinition Height="20" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="Instrument" FontStyle="Italic"></Label>
<StackPanel Grid.Row="1" Margin="5,0,0,0" Orientation="Horizontal">
<Label Content="{Binding Path=SetupInstrument}"></Label>
</StackPanel>
<Label Grid.Row="2" Content="Description" FontStyle="Italic"></Label>
<StackPanel Grid.Row="3" Margin="5,0,0,0" Orientation="Horizontal">
<TextBox Text="{Binding Path=SetupDescription}" MaxLength="11" Name="TextBoxSetupDescription" TextChanged="TextBoxSetupDescription_TextChanged"></TextBox>
</StackPanel>
<Label Grid.Row="4" Content="Datablock" FontStyle="Italic"/>
<StackPanel Grid.Row="5" Margin="5,0,0,0" Name="SetupName" Orientation="Horizontal">
<Label Content="Name"/>
<Label Content=" = "/>
<Label Content="{Binding Path=SetupName}"></Label>
</StackPanel>
<StackPanel Grid.Row="6" Margin="5,0,0,0" Name="SetupDate" Orientation="Horizontal">
<Label Content="Date"/>
<Label Content=" = "/>
<Label Content="{Binding Path=SetupDateTime, Converter={StaticResource DateConverter}}"/>
</StackPanel>
<StackPanel Grid.Row="7" Margin="5,0,0,0" Name="SetupTime" Orientation="Horizontal">
<Label Content="Time"/>
<Label Content=" = "/>
<Label Content="{Binding Path=SetupDateTime, Converter={StaticResource TimeConverter}}"/>
</StackPanel>
<Grid Background="Transparent" Grid.ColumnSpan="3"></Grid>
</Grid>
</GroupBox>
</Grid>
<c1:C1Expander Grid.Row="2" Margin="5" Name="c1ExpanderDescription" CornerRadius="2"
Header="{Binding Path=DataContext.Description, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
HeaderFontSize="14" HeaderFontFamily="Segoe UI">
<!--<TextBlock Text="{Binding Path=Snapshot.Comments}" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="7" />-->
<!--<vc:AutoCompleteTextBox AutoText="{Binding Path=Snapshot.Comments}" Height="23" x:Name="acTextBoxComments" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="7" />-->
<TextBox Text="{Binding Path=Snapshot.Comments}" MouseLeave="ExtraInfo_MouseLeaveDescription" Tag="7" AcceptsReturn="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"></TextBox>
</c1:C1Expander>
<c1:C1Expander Grid.Row="1" Margin="5,0,5,5" Name="c1ExpanderExtraInfo" CornerRadius="2"
Header="{Binding Path=DataContext.ExtraInfo, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
HeaderFontSize="14" HeaderFontFamily="Segoe UI">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Label Margin="2" Grid.Column="0" Grid.Row="0" Content="{Binding Path=DataContext.ExtraInfoTitle, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"></Label>
<vc:AutoCompleteTextBox Grid.Column="1" Grid.Row="0" AutoText="{Binding Path=Snapshot.Title}" Height="23" x:Name="acTextBoxTitle" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="0"/>
<!--<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Path=Snapshot.Title}"></TextBox>-->
<Label Margin="2" Grid.Column="0" Grid.Row="1" Content="{Binding Path=DataContext.ExtraInfoSubTitle, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"></Label>
<vc:AutoCompleteTextBox Grid.Column="1" Grid.Row="1" AutoText="{Binding Path=Snapshot.SubTitle}" Height="23" x:Name="acTextBoxSubTitle" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="1"/>
<!--<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Path=Snapshot.SubTitle}"></TextBox>-->
<Label Margin="2" Grid.Column="0" Grid.Row="2" Content="{Binding Path=DataContext.ExtraInfoCompanyName, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"></Label>
<vc:AutoCompleteTextBox Grid.Column="1" Grid.Row="2" AutoText="{Binding Path=Snapshot.CompanyName}" Height="23" x:Name="acTextBoxCompanyName" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="2"/>
<!--<TextBox Grid.Column="1" Grid.Row="2" Text="{Binding Path=Snapshot.CompanyName}"></TextBox>-->
<Label Margin="2" Grid.Column="0" Grid.Row="3" Content="{Binding Path=DataContext.ExtraInfoCompanyInfo, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"></Label>
<vc:AutoCompleteTextBox Grid.Column="1" Grid.Row="3" AutoText="{Binding Path=Snapshot.CompanyInfo}" Height="23" x:Name="acTextBoxCompanyInfo" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="3"/>
<!--<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding Path=Snapshot.CompanyInfo}"></TextBox>-->
<Label Margin="2" Grid.Column="0" Grid.Row="4" Content="{Binding Path=DataContext.ExtraInfoContactPerson, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"></Label>
<vc:AutoCompleteTextBox Grid.Column="1" Grid.Row="4" AutoText="{Binding Path=Snapshot.ContactPerson}" Height="23" x:Name="acTextBoxContactPerson" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="4"/>
<!--<TextBox Grid.Column="1" Grid.Row="4" Text="{Binding Path=Snapshot.ContactPerson}"></TextBox>-->
<Label Margin="2" Grid.Column="0" Grid.Row="5" Content="{Binding Path=DataContext.ExtraInfoContactInfo, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"></Label>
<vc:AutoCompleteTextBox Grid.Column="1" Grid.Row="5" AutoText="{Binding Path=Snapshot.ContactInfo}" Height="23" x:Name="acTextBoxContactInfo" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="5"/>
<!--<TextBox Grid.Column="1" Grid.Row="5" Text="{Binding Path=Snapshot.ContactInfo}"></TextBox>-->
<Label Margin="2" Grid.Column="0" Grid.Row="6" Content="{Binding Path=DataContext.ExtraInfoTestDevice, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"></Label>
<vc:AutoCompleteTextBox Grid.Column="1" Grid.Row="6" AutoText="{Binding Path=Snapshot.TestDevice}" Height="23" x:Name="acTextBoxTestDevice" DelayTime="400" Threshold="2" MouseEnter="ExtraInfo_MouseEnter" MouseLeave="ExtraInfo_MouseLeave" Tag="6"/>
<!--<TextBox Grid.Column="1" Grid.Row="6" Text="{Binding Path=Snapshot.TestDevice}"></TextBox>-->
</Grid>
</c1:C1Expander>
</Grid>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="SelectedTemplate">
<Border BorderBrush="Yellow" BorderThickness="1" Margin="10" Background="{StaticResource SnapshotBackgroundBrush}" CornerRadius="5">
<StackPanel Margin="5">
<Image Margin="2" Source="{Binding Path=Snapshot.Screen}" />
<TextBlock Margin="2" Text="{Binding Path=Snapshot.TimeStamp, Converter={StaticResource DateTimeConverter}}" Foreground="White" />
<TextBlock Margin="2" Text="{Binding Path=Snapshot.Location}" Foreground="White" />
</StackPanel>
</Border>
</DataTemplate>
<Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle">
<Setter Property="ContentTemplate" Value="{StaticResource ItemTemplate}" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="ContentTemplate" Value="{StaticResource ItemTemplate}" />
</Trigger>
</Style.Triggers>
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
</Style.Resources>
</Style>
</UserControl.Resources>
<!--**********************************************************-->
<!--***** Here starts the 'real' drawing of the controls *****-->
<!--**********************************************************-->
<Grid Name="mainGrid" Style="{StaticResource FlukeStyle}" HorizontalAlignment="Stretch" SizeChanged="MainGrid_SizeChanged">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="63" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Visibility="{Binding ImageVisibility}" Source="{Binding Path=ScreenImage, Converter={StaticResource ImageConverter} }" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5"></Image>
<ListBox Style="{StaticResource ListBoxStyle}" Grid.Row="0" Name="listBoxSnapshots" HorizontalContentAlignment="Stretch" ItemContainerStyle="{StaticResource ContainerStyle}" ItemsSource="{Binding Snapshots}" SelectedItem="{Binding SelectedItem}" BorderThickness="0" Background="Transparent" SelectionMode="Extended" MouseDoubleClick="ListBoxSnapshots_MouseDoubleClick" Visibility="{Binding ListboxVisibility}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding SelectionChangedCommand}" CommandParameter="{Binding SelectedItems, ElementName=listBoxSnapshots}" />
</i:EventTrigger>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding DoubleClickCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Name="wrapPanelListBox" Orientation="Horizontal" IsItemsHost="True"
Width="{Binding Path=DataContext.WrapPanelWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
<Border BorderBrush="Black" BorderThickness="1" Margin="2,1,2,2" HorizontalAlignment="Stretch" Grid.Row="1">
<Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Visibility="{Binding CheckboxesVisibility}">
<CheckBox Style="{StaticResource styleCustomCheckBox}" Content="Screen" IsChecked="{Binding ScreenChecked}"/>
<CheckBox Style="{StaticResource styleCustomCheckBox}" Content="Waveform" IsChecked="{Binding WaveformChecked}"/>
<CheckBox Style="{StaticResource styleCustomCheckBox}" Content="Setup" IsChecked="{Binding SetupChecked}"/>
</StackPanel>
<Button HorizontalAlignment="Center" Content="Close" Height="32" Width="75" Visibility="{Binding ImageVisibility}" Command="{Binding CloseImageCommand}"></Button>
</Grid>
</Border>
</Grid>
</UserControl>
Thanks and best regards,
Egbert
- EJansen asked 12 years ago
This issue was reported on support tickets by a customer, and we are duplicating here for the community.
Our application use SciChart, it runs normal on most of PCs, but there is one PC which runs the application threw an exception, please see below log info.
2020-07-03 08:08:21,091 [1]-[OnUnhandledException] ERROR Exception has been thrown by the target of an invocation.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.Windows.Markup.XamlParseException: Set property ‘SciChart.Charting.VisualXcceleratorEngine.IsEnabled’ threw an exception. —> System.Exception: Your GPU is blacklisted for use by the Visual Xccelerator Engine! There are several reasons why a GPU could belong to the blacklist. For example, low computation capabilities of the GPU could cause Timeout Detection and Recovery of Graphics Adapter Drivers by the OS, resulting in crashing the application. at SciChart.Charting.VisualXcceleratorEngine.ivc(DependencyObject t, DependencyPropertyChangedEventArgs u) at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)what should I do? how to resolve this issue?
- Andrew Burnett-Thompson asked 6 years ago
- last active 6 years ago
I want to display a point as a decimar separator in numeric values. I have achieved this in chart axis and vertical slices tooltips, creating a custom NumericLabelProvider (see attached picture). How can I do the same with vertical slices xacis labels? (in the picture attached, note that every numeric value has a point as a decimar separator, but vertical slice label has a comma). I have defined LabelTextFormatting of the slice with “#.##E+0”, but it doesn’t work.
Thanks in advance
Regads, Juan
- Jose Mora Almerich asked 10 years ago
- last active 1 year ago
Hello,
I am having trouble determining the parameters to pass to ModifierTouchEventArgs when overriding GestureModifierBase in the latest SciChart versions. I can’t figure out where to get the now required source and target values – the super class returns null when asked.. Code snippet below…
class MyCustomGestureModifier() : GestureModifierBase() {
override fun onLongPress(e: MotionEvent?) {
super.onLongPress(e)
/* This worked in SciChart v4.2.0.4557, but no longer does due to ModifierTouchEvents now requiring source and target
val args = ModifierTouchEventArgs()
args.e = e
args.isHandled = false
args.isMaster = true
args.isInSourceBounds = true
*/
// create touch event args for rollover modifier
// 4.3.0.4646 wants additional parameters for source and target
val orgEvent = originalTouchEvent // this is null, so where should we get source and target?
val args = ModifierTouchEventArgs(orgEvent.source, orgEvent.target)
args.e = e
args.isHandled = false
rolloverModifier.onTouch(args)
args.clear()
}
In case it helps, the above snippet is based on a previous discussion at https://www.scichart.com/questions/android/separating-rollover-tootips-and-pan-drag
Thank you.
- C Bolton asked 4 years ago
- last active 4 years ago
Hello,
I’m working at displaying a map using FastNonUniformHeatmapRenderableSeries. I want to make it looks blurry, so there will be smooth transition between inner edges.
How can I do it?
Thanks in advance
- Sergei Stishenko asked 8 years ago
- last active 8 years ago
I would like to template items of an AxisCollection assigned to a sciChartSurface in binding of an AxisItemCollectionViewModel. But it looks like I cannot do it as Visual Studio won’t compile my tries.
What i am looking for is something like the EEG 16 channel sample. There the ListBoxItems are styled via a template which is bound to a ViewModelItem. The ListBox itsself is bound to a ViewModelCollection. Depending on how many entries there are entries in the listbox.
So I would like to do something like this:
<SciChartSurface.AxisCollection ItemsSource="{Binding MyAxisCollectionViewModels}" ItemTemplate="{StaticResource AxisItemTemplate}" />
Is this possible? I don’t know how many y-axes i will have. They are configurable by the user.
- Uwe Hafner asked 11 years ago
- last active 11 years ago
So, i am currently evaluating Scichart for a realtime monitoring application. One of the key requirements will be a gantt-style chart with one axis being time, the other being specific work channels. A single series might have entries across multiple channels. Additionally, I’d want to be be able to show subgroups from a particular series point and stack the bars next to each other in the same channel. Is this possible in SciChart? If so, what would be the best way to implement this?
- Robert Potter asked 11 years ago
- last active 11 years ago
Hi everyone, I encountered a very strange bug in SciChart today.
For a customer in China I had to render Chinese characters so I specified the xml:lang=”zh-CN” attribute to ensure they are rendered correctly.
I did this on a panel that also contained a SciChart surface.
And now, whenever I moved away from the page containing the control, I got a WPF invalid operation exception triggered by the SciChart control with the following text:
“cannot modify the logical children for this node at this time because a tree walk is in progress”
The workaround was of course very simple: specify the xml:lang attribute on the specific textboxes that contained the Chinese characters. But it took me a while to figure out that this was the cause of the problem.
- Stefan Linssen asked 10 years ago
- last active 10 years ago
Hi every one,
In order to pan and zoom the graph (from the example https://www.scichart.com/wpf-chart-example-pan-on-mouse-drag/ ), I used MouseWheelZoomModifier for zooming and ZoomPanModifier for panning.
The code is as below:
<s:ZoomPanModifier x:Name="zoomPanModifier"
ClipModeX="ClipAtExtents"
ExecuteOn="MouseLeftButton"
IsEnabled="True" />
</s:ModifierGroup>
However, when I zoom out the graph and pan it horizontally, the graph auto stretch (auto zooming). That is not what I expected, I want disable this feature but I have no idea how to do it.

- Quan Tran asked 10 years ago
- last active 9 months ago
Hello,
we have a problem while executing our unit tests on our jenkins server.
The unit tests are run via the Nunit Console Runner.
In one specific Test project the unit test aborts with a “SocketException”.
The output looks like this:
Test Files D:\dev\jenkins\workspace\c\build\test....\source\Exec64_Release\Test.dll
Writing out DLLs to C:\Users\user\AppData\Local\SciChart\Dependencies\v8.1.0.27856\x64
System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 127.0.0.1:65018
So because there is the line with “Writing out Dlls ….” which contains SciChart and the next line is the SocketException I just wanted to ask if there is something in SciChart which tries to connect to the localhost, I don’t know e.g. the licensing?
I don’t want to blame SciChart, I just want to ask if it could be possible. Because it is not easy to debug this scenario reliantly.
Best Regards,
Nick
- Nick Müller asked 2 years ago
- last active 2 years ago
Hi,
I have 3 questions regarding the FastHeatMapRenderableSeries
First, I would like to ask whether it possible to use the transparent color FastHeatMapRenderableSeries, even when the map itseft is opaque (Opacity=1)? I tried to include the transparent color into the ColorMap gradient brush, but then the corresponding data values are shown in white.
Second, when the heatmap is scaled, the semi-transparent cell borders are visible on the heatmap. Can I get rid of them, for example, with the UseLayoutRounding or proper scaling?
Finally, if I continuously refresh the heatmap with incoming data, I see some rendering artifacts in some frames. The artifacts are usually black vertical stripes or, more rarely, rectangles. Can it be related to graphics hardware?
I made a screenshot demonstrating all 3 problems and attached it here.
Thank you very much in advance!
Ilia
- corvex asked 11 years ago
- last active 11 years ago

