Я написал приложение с использованием поверхности 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()
, но я понятия не имею о причине. Вы можете мне помочь?