2017-07-25 28 views
1

我使用SciChart組件的VerticallStackedAxes並將7 AxisMarkerAnnotation添加到每個NumericAxis,但AxisMarkerAnnotations除第一個以外不可拖動。無法正確拖動VertisStackedAxes中的AxismarkerAnnotation

this is result:

這是我的用戶代碼的一部分:

<s:SciChartSurface.YAxes> 
       <s:NumericAxis x:Name="Ch0" Style="{StaticResource YAxisStyle}" Id="Ch0" AxisTitle="Ch0" Grid.Row="0"/> 
       <s:NumericAxis x:Name="Ch1" Style="{StaticResource YAxisStyle}" Id="Ch1" AxisTitle="Ch1" Grid.Row="2" /> 
       <s:NumericAxis x:Name="Ch2" Style="{StaticResource YAxisStyle}" Id="Ch2" AxisTitle="Ch2" Grid.Row="4" /> 
       <s:NumericAxis x:Name="Ch3" Style="{StaticResource YAxisStyle}" Id="Ch3" AxisTitle="Ch3" Grid.Row="6" /> 
       <s:NumericAxis x:Name="Ch4" Style="{StaticResource YAxisStyle}" Id="Ch4" AxisTitle="Ch4" Grid.Row="8" /> 
       <s:NumericAxis x:Name="Ch5" Style="{StaticResource YAxisStyle}" Id="Ch5" AxisTitle="Ch5" Grid.Row="10" /> 
       <s:NumericAxis x:Name="Ch6" Style="{StaticResource YAxisStyle}" Id="Ch6" AxisTitle="Ch6" Grid.Row="12" /> 
       <s:NumericAxis x:Name="Ch7" Style="{StaticResource YAxisStyle}" Id="Ch7" AxisTitle="Ch7" Grid.Row="14" /> 
      </s:SciChartSurface.YAxes> 

      <s:SciChartSurface.ChartModifier> 
       <s:ModifierGroup> 
        <s:RubberBandXyZoomModifier IsXAxisOnly="True"/> 
        <s:ZoomExtentsModifier/> 
        <s:CursorModifier ShowAxisLabels="False" ShowTooltip="False"/> 
       </s:ModifierGroup> 
      </s:SciChartSurface.ChartModifier> 

      <s:SciChartSurface.Annotations> 

       <!-- Draws Bands behind each axis --> 
       <s:BoxAnnotation YAxisId="Ch0" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch0}" Y2="{Binding VisibleRange.Max, ElementName=Ch0}" Background="#11000000" AnnotationCanvas="BelowChart"/> 
       <s:BoxAnnotation YAxisId="Ch1" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch1}" Y2="{Binding VisibleRange.Max, ElementName=Ch1}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/> 
       <s:BoxAnnotation YAxisId="Ch2" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch2}" Y2="{Binding VisibleRange.Max, ElementName=Ch2}" Background="#11000000" AnnotationCanvas="BelowChart"/> 
       <s:BoxAnnotation YAxisId="Ch3" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch3}" Y2="{Binding VisibleRange.Max, ElementName=Ch3}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/> 
       <s:BoxAnnotation YAxisId="Ch4" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch4}" Y2="{Binding VisibleRange.Max, ElementName=Ch4}" Background="#11000000" AnnotationCanvas="BelowChart"/> 
       <s:BoxAnnotation YAxisId="Ch5" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch5}" Y2="{Binding VisibleRange.Max, ElementName=Ch5}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/> 
       <s:BoxAnnotation YAxisId="Ch6" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch6}" Y2="{Binding VisibleRange.Max, ElementName=Ch6}" Background="#11000000" AnnotationCanvas="BelowChart"/> 
       <s:BoxAnnotation YAxisId="Ch7" CoordinateMode="RelativeX" X1="0" X2="1" Y1="{Binding VisibleRange.Min, ElementName=Ch7}" Y2="{Binding VisibleRange.Max, ElementName=Ch7}" Background="#44B0C4DE" AnnotationCanvas="BelowChart"/> 

       <s:AxisMarkerAnnotation X1="0.0" 
             Y1="0.0" 
             YAxisId="Ch0" 
             IsEditable="True" 
             LabelTemplate="{StaticResource AxisMarkerTemplate}" 
             PointerTemplate="{StaticResource DefaultAxisPointerTemplate}"/> 

       <s:AxisMarkerAnnotation X1="0.0" 
             Y1="0.0" 
             YAxisId="Ch1" 
             IsEditable="True" 
             LabelTemplate="{StaticResource AxisMarkerTemplate}" 
             PointerTemplate="{StaticResource DefaultAxisPointerTemplate}"/> 
      </s:SciChartSurface.Annotations> 

你可以在這個網址找到源代碼: https://github.com/ABTSoftware/SciChart.WPF.Examples/tree/master/v4.x/Examples/SciChart.Examples/Examples/ModifyAxisBehaviour 感謝

回答

1

有來自軸類GetDataValue的錯誤,不計算y軸偏移。 在我的一個項目中,我解決了這個類的問題:

class FixedAxisMarkerAnnotation : AxisMarkerAnnotation 
{ 
    protected override IComparable FromCoordinate(double coord, IAxis axis) 
    { 
     var coordinateCalculator = this.YAxis.GetCurrentCoordinateCalculator(); 

     if (!axis.IsXAxis) 
      coord += coordinateCalculator.CoordinatesOffset; 
     // 

     return base.FromCoordinate(coord, axis); 
    } 
}