Ошибка с визуальной частью модификаторов SciChart - PullRequest
0 голосов
/ 17 января 2019

Я написал приложение с использованием поверхности 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 голосов
/ 26 февраля 2019

Первое, что я бы предложил, это обновить.

Последняя версия SciChart v5.3.0 , которая доступна от NuGet.

Начиная с версии 4.2.5, SciChart исправил сотни ошибок, начиная с версии 4.2.5, выпущенной 18 месяцев назад ( см. Историю релизов ), и частота обновлений очень высока. Если в последней версии есть проблема, опубликуйте пример кода на форумах SciChart , и он будет исследован

...