SciChart修改器的视觉部分出现错误

时间:2019-01-17 08:56:24

标签: c# wpf scichart

我已经使用带有一些修改器的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()方法中,但是我不知道原因。你能帮我吗?

1 个答案:

答案 0 :(得分:0)

我建议的第一件事是更新。

最新版本是SciChart v5.3.0,可从NuGet获得。

自从4.2.5版开始以来,SciChart已修复了18个月前的v4.2.5(see release history)以来的数百个错误,并且更新频率很高。如果最新版本有问题,请在SciChart forums上发布代码示例,我们将对其进行调查