我已经使用带有一些修改器的SciSchart表面编写了一个应用程序。
<s:SciChartSurface x:Name="scichartSurface" Grid.Row="1" Grid.Column="1" MouseLeftButtonDown="scichartSurface_MouseLeftButtonDown"
PreviewMouseLeftButtonDown="scichartSurface_MouseLeftButtonDown" MouseDoubleClick="scichartSurface_MouseDoubleClick">
<s:SciChartSurface.XAxis>
<s:DateTimeAxis x:Name="X1" Id ="XAxis" AxisTitle="Время" SubDayTextFormatting="dd.MM.yyyy HH:mm:ss" />
</s:SciChartSurface.XAxis>
<s:SciChartSurface.YAxes>
<s:NumericAxis x:Name="Default" Id="Value" AxisTitle="Значение" AxisAlignment="Left" VisibleRange="-10, 110" Visibility="Collapsed" ToolTip="Ось безразмерных величин"/>
</s:SciChartSurface.YAxes>
<s:SciChartSurface.ChartModifier >
<s:ModifierGroup x:Name="mGroup">
<s:RubberBandXyZoomModifier x:Name="rubXyModifier" ExecuteOn="MouseLeftButton" IsXAxisOnly="{Binding Path=(local:SessionVariables.IsXScaleOnly), UpdateSourceTrigger=PropertyChanged}"
RubberBandFill="#33FFFFFF" RubberBandStroke="DarkRed" ZoomExtentsY="{Binding Path=(local:SessionVariables.IsYScaleOnly), UpdateSourceTrigger=PropertyChanged}"
RubberBandStrokeDashArray="2 2" IsEnabled="{Binding Path=(local:SessionVariables.IsScaleMode), UpdateSourceTrigger=PropertyChanged}"/>
<!-- Allow pan on Right mouse drag -->
<s:ZoomPanModifier x:Name="zoomPanModifier" ExecuteOn="MouseLeftButton" ClipModeX="None" IsEnabled="{Binding Path=(local:SessionVariables.IsMovingMode), UpdateSourceTrigger=PropertyChanged}"/>
<!-- Allow Dragging YAxis to Scale -->
<s:YAxisDragModifier x:Name="yDrag" DragMode="Pan" IsEnabled="{Binding Path=(local:SessionVariables.IsMovingMode), UpdateSourceTrigger=PropertyChanged}"/>
<!-- Allow Dragging XAxis to Pan -->
<s:XAxisDragModifier x:Name="xDrag" DragMode="Pan" IsEnabled="{Binding Path=(local:SessionVariables.IsMovingMode), UpdateSourceTrigger=PropertyChanged}"/>
<!-- Allow Mousewheel Zoom -->
<!--<s:MouseWheelZoomModifier IsEnabled="{Binding Path=(local:SessionVariables.IsMovingMode),Converter={local:BackBoolConverter}, UpdateSourceTrigger=PropertyChanged}"/>-->
<s:RolloverModifier ExecuteOn="MouseMove" ShowTooltipOn="Never" SourceMode="SelectedSeries" x:Name="rollModifier"/>
<!--Реперы-->
<s:VerticalSliceModifier x:Name="sliceModifier"/>
<!--Курсор с перекрестьем-->
<s:CursorModifier IsEnabled="True" ShowTooltip="True" ShowTooltipOn="Never"
ShowAxisLabels="True" SourceMode="AllVisibleSeries" x:Name="cursModifier"/>
<s:TooltipModifier >
</s:TooltipModifier>
</s:ModifierGroup>
</s:SciChartSurface.ChartModifier>
</s:SciChartSurface>
使用此表面时,出现错误,但随机发生。错误是
指定的Visual元素已经是另一个Visual的子元素 元素或根CompositionTarget元素
此外,我对此错误也有一个StackTrace。
经过分析,我认为问题出在VerticalSliceModifierBase.AttachRolloverMarker()
方法中,但是我不知道原因。你能帮我吗?
答案 0 :(得分:0)
我建议的第一件事是更新。
最新版本是SciChart v5.3.0,可从NuGet获得。
自从4.2.5版开始以来,SciChart已修复了18个月前的v4.2.5(see release history)以来的数百个错误,并且更新频率很高。如果最新版本有问题,请在SciChart forums上发布代码示例,我们将对其进行调查